hi pytone,
bin gerade fertig geworden! Dein Code ist jetzt komplett drin.
Code: Alles auswählen
import Tkinter as tk
root = tk.Tk()
fl = []
for i in range(1):
for j in range(2):
f = tk.Frame(root)
f.grid(column=i, row=j)
fl.append(f)
list = []
for i in range(2):
for j in range(1):
e = tk.Entry(fl[0], width=7)
e.grid(column=i, row=j)
e.insert(tk.END, '')
list.append(e)
l = tk.Listbox(fl[1], width=14)
l.grid()
def test(event):
l1 = list[0].get()
l2 = list[1].get()
l1, l2 = l1.split(":"), l2.split(":")
dauer_min = (int(l2[0])-int(l1[0]))*60+int(l2[1])-int(l1[1])
z = str(dauer_min//60)+":"+str(dauer_min%60).zfill(2)
l.insert(tk.END, z)
e.bind('<KeyPress-Tab>', test)
root.mainloop()
Das ist auch genau das, was mein Programm macht: Arbeitszeiten berechnen.
(Man könnte natürlich auch 'Excel' nehmen

)
Allerdings für mehrere Mitarbeiter und pro Monat:
Code: Alles auswählen
import Tkinter as tk
class Stundenplaner(object):
def __init__(self, master):
date = tk.Frame(master) # frame =I=
date.grid(column=0, row=1)
l1 = []
for c in range(1, 2):
for r in range(3):
f = tk.Frame(master) # frame =II=,=III=,=IV=
f.grid(column=c, row=r)
l1.append(f)
for r in range(1, 32):
tk.Label(date, text = r, width=4).grid(ipady='1') # -----> frame =I=
tk.Entry(l1[0], width=10, bg='white').grid(ipadx='3') # -----> frame =II=
self.d = {}
for r in range(2, 33):
for c in range(1, 3):
entry = tk.Entry(l1[1], width=5, bg='white') # -----> frame =III=
entry.grid(column=c, row=r)
entry.insert(tk.END, 0)
self.d[c, r] = entry
entry.bind('<KeyPress-Tab>', self.berechnen)
self.listbox = tk.Listbox(l1[2], width=10, height=1, bd='3', relief='ridge') # ----->frame =IV=
self.listbox.grid(sticky='E', ipadx=2)
def berechnen(self, event):
list1 = []
list2 = []
for i in range(2, 33):
a = 2, i
b = 1, i
x = float(self.d.get(a).get())
list2.append(x)
y = float(self.d.get(b).get())
list1.append(y)
s1 = sum(list1)
s2 = sum(list2)
s1s2 = s2 - s1
x = self.listbox.insert(tk.END, '%.2f'% s1s2)
self.listbox.delete(0, tk.END)
self.listbox.insert(tk.END, '%.2f'% s1s2)
root = tk.Tk()
for r in range(1):
for c in range(5):
tkT = tk.Frame(root, width=10)
tkT.grid(column=c, row=r)
s = Stundenplaner(tkT)
root.mainloop()
Ich schau mal, das ich deinen code ins hauptprogramm bekomme!
Grüße
rai