in diesem Programm soll man eine Int Zahl eingeben und das Programm soll dann jeweils in Sekunden schritten bis zu dieser Zahl zählen. Auf der Konsole klappt die Ausgabe, in Tkinter nicht.
Die Programmoberfläche friert bei mir ein und zeigt dann nur den letzten Wert an. Kann mir jemand erklären warum die Oberfläche nicht jede Sekunde aktualisiert wird ?
Code: Alles auswählen
import tkinter as tk
class Programm(tk.Tk):
def __init__(self):
super().__init__()
self.entry1 = tk.IntVar(self)
self.label1 = tk.StringVar(self, "Ausgabe")
self.Entry1 = tk.Entry(self, textvariable=self.entry1)
self.Entry1.pack()
self.Label1 = tk.Label(self, textvariable=self.label1)
self.Label1.pack()
self.Button1 = tk.Button(self, text="Start", command=self.start)
self.Button1.pack()
def start(self):
runden = int(self.entry1.get())
if runden > 0:
self.counter(runden)
else:
self.label1.set("Bitte Zahl > 0 eingeben !!")
def counter(self, runden):
for j in range(runden):
print(j)
self.after(1000, self.update(j))
def update(self,zahl):
self.label1.set(str(zahl))
def main():
root = Programm()
root.mainloop()
if __name__ == "__main__":
main()