Python Forum
[Tkinter] ClockIn/Out tkinter problem
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] ClockIn/Out tkinter problem
#1
I will appreciate any help. I got stuck with hours to find the solution.

import tkinter as tk
import time
import datetime
from tkinter import Frame
from tkinter import *
import csv


class StopWatch(Frame):                                                                
    def __init__(self, parent=None, **kw):        
        Frame.__init__(self, parent, kw)
        self._start = 0.0        
        self._elapsedtime = 0.0
        self._running = 0
        self.timestr = StringVar()               
        self.makeWidgets()  

    def makeWidgets(self):                         
        """ Make the time label. """
        self.time_label = Label(self, textvariable=self.timestr)
        self._setTime(self._elapsedtime)
        self.time_label.pack(fill=X, expand=NO, pady=2, padx=2)                      

    def _update(self): 
        """ Update the label with elapsed time. """
        self._elapsedtime = time.time() - self._start
        self._setTime(self._elapsedtime)
        self._timer = self.after(50, self._update)

    def _setTime(self, elap):
        """ Set the time string to Minutes:Seconds:Hundreths """
        minutes = int(elap/60)
        seconds = int(elap - minutes*60.0)
        hseconds = int((elap - minutes*60.0 - seconds)*100)                
        self.time_label.configure(text='%02d:%02d:%02d' % (minutes, seconds, hseconds))

    def Start(self):                                                     
        """ Start the stopwatch, ignore if running. """
        if not self._running:            
            self._start = time.time() - self._elapsedtime
            self._update()
            self._running = 1        

    def Stop(self):                                    
        """ Stop the stopwatch, ignore if stopped. """
        if self._running:
            self.after_cancel(self._timer)            
            self._elapsedtime = time.time() - self._start    
            self._setTime(self._elapsedtime)
            self._running = 0

    def Reset(self):                                  
        """ Reset the stopwatch. """
        self._start = time.time()         
        self._elapsedtime = 0.0    
        self._setTime(self._elapsedtime)

    def clock_in(self):
        global e1              
        data = e1.get()
        ClockIn_time = datetime.datetime.now()
        ClockIn_date = datetime.datetime.now().strftime('%Y-%m-%d')
        totalinput = [ data, ClockIn_time, ClockIn_date] 
        with open(self.filename, "a") as savedb:
            w = csv.writer(savedb)
            w.writerow(totalinput)

    def clock_out(self):
        global e1              
        data = e1.get()
        ClockOut_time = datetime.datetime.now()
        ClockOut_date = datetime.datetime.now().strftime('%Y-%m-%d')
        totalinput = [ data, ClockOut_time , ClockOut_date ] 
        with open(self.filename, "a") as savedb:
            w = csv.writer(savedb)
            w.writerow(totalinput)

def main():
    global e1
    root = Tk()
    sw = StopWatch(root)
    sw.pack(side=TOP)
    root.geometry("400x400")

    ####
    label = tk.Label(root, text="Employee Name: ")
    label.pack(side="top")

    new = StringVar()
    e1 = Entry(root, textvariable=new)
    e1.pack()
    #######

    btn1 = Button(root, text='Clock In', command=lambda :[sw.Start(), sw.clock_in()])
    btn1.pack(side=LEFT)
    btn2 = Button(root, text='Clock Out', command=lambda :[sw.Start(), sw.clock_out()])
    btn2.pack(side=LEFT)
    btn3 = Button(root, text='Reset', command=sw.Reset)
    btn3.pack(side=LEFT)
    btn4 = Button(root, text='Quit', command=root.quit)
    btn4.pack(side=LEFT)

    root.mainloop()

if __name__ == '__main__':
    main()
Reply


Messages In This Thread
ClockIn/Out tkinter problem - by Maryan - Oct-09-2020, 08:58 PM
RE: ClockIn/Out tkinter problem - by deanhystad - Oct-09-2020, 10:40 PM
RE: ClockIn/Out tkinter problem - by joe_momma - Oct-12-2020, 03:42 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Python3 tkinter radiobutton problem Nick_tkinter 14 6,074 Feb-15-2021, 11:01 PM
Last Post: Nick_tkinter
  tkinter python button position problem Nick_tkinter 3 3,575 Jan-31-2021, 05:15 AM
Last Post: deanhystad
  tkinter| listbox.insert problem Maryan 3 3,534 Sep-29-2020, 05:34 PM
Last Post: Yoriz
  Tkinter problem DPaul 6 4,159 May-28-2020, 03:40 PM
Last Post: DPaul
  [Tkinter] Tkinter - I have problem after import varaible or function from aGUI to script johnjh 2 2,603 Apr-17-2020, 08:12 PM
Last Post: johnjh
  [Tkinter] Problem with tkinter when creating .exe file Jan_97 2 4,615 Feb-27-2020, 05:17 PM
Last Post: Jan_97
  [Tkinter] Tkinter problem catlessness 1 2,065 Jan-15-2020, 05:17 AM
Last Post: Larz60+
  Problem with Submit button Tkinter Reldaing 2 3,674 Jan-05-2020, 01:58 AM
Last Post: balenaucigasa
  tkinter GUI, problem running seperate files fishglue 17 6,415 Oct-15-2019, 02:56 PM
Last Post: Denni
  [python] [Tkinter] Problem bidding combobox with np.array NEL 3 3,414 Aug-04-2019, 11:07 AM
Last Post: Yoriz

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020