Hallo,
ich versuche mich auch an einer zeiterfassung, als python script läuft es wunderbar, jetzt möchte ich mit tkinter gui programmieren, leider klappt das nicht so wie ich mich ausgedacht habe, ich lese DB aus erstelle eine liste mit usern entscprechendan statusen und wirde das dan gerne als Labels darstellen, und die Labels alle 2 sec aktualiesieren.
das Programm muß mindestens 24 h laufen ohne das cpu oder Ram überfüllt werden.
Kann mir da jemand vielleicht helfen?
[code=php]
#!/usr/bin/python
# -*- coding: utf-8 -*-
import Tkinter as tk
import time
import datetime
import csv
ts = time.time()
sec = int(ts)
dat = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
zeit = datetime.datetime.fromtimestamp(ts).strftime('%H:%M:%S')
zeit1 = datetime.datetime.fromtimestamp(ts).strftime('%H')
time1 = ''
class AppGUI:
def get_status(self):
stati = []
with open('statuse.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter="'", quoting=csv.QUOTE_NONE)
for row in reader:
stati.append(row)
return stati
self.fenster.after(2000, self.get_status)
def tick(self):
global zeit
self.time2 = time.strftime('%H:%M:%S')
if self.time2 != zeit:
zeit = self.time2
self.clock.config(text = self.time2)
self.clock.after(1000, self.tick)
def __init__(self):
r = 0
self.fenster = tk.Tk()
self.fenster.title('ZEITERFASSUNG')
self.fenster.geometry("800x600")#+24+10
self.fenster.configure(background='#AAC4D3')
### frame datzeit
self.datzeit = tk.Frame(self.fenster, width = 655, height = 30, bg = "yellow", relief = "sunken", border = 2) ##AAC4D3
self.datzeit.pack(fill='x', pady = "1")#side = 'top'
#lbl datzeit
self.labdat = tk.Label(self.datzeit, relief = "groove", width = 10, bg = "white", font = "Verdana 10 bold", text = dat)
self.labdat.pack(side = "right")
self.clock = tk.Label(self.datzeit, relief = "groove", width = 10, bg = "white", font = "Verdana 10 bold")
self.clock.pack(side = "right")#side=LEFT
#hier sollten die Labels hin
#erstes, user
self.lbn = tk.Label(self.statf, relief="raised", width=15, height=2, bg="#AAC4D3", font = "Verdana 10 bold")
self.lbn.grid(row=r,column=0)
#self.lbn.config(text = stati[7])
# zweites aktuelles status
self.lbs = tk.Label(self.statf, relief="sunken" , width=15, height=2, bg="red", font = "Verdana 10 bold")
self.lbs.grid(row=r,column=1)
#self.lbs.config(text="abwesend")#(text = stati[3])
# drittes sonstiges
self.lbk = tk.Label(self.statf, relief="sunken", width=15, height=2, bg="#AAC4D3", font = "Verdana 10 bold")
self.lbk.grid(row=r,column=2)
#self.lbk.config(text = stati[5])
r += 1
self.tick()
self.fenster.after(2000, self.label_update)
self.fenster.mainloop()
def label_update(self):
#hier labels zu,m aktualisieren????????
self.fenster.after(2000, self.label_update)
def main():
app = AppGUI()
if __name__ == '__main__':
main()[/php]