Hallo Ich versuche, ein Etikett in Tkinter zu bekommen, um jedes Element auf einmal zu zeigen, während es eine Liste durchläuft. Mein Code zeigt nur das letzte Element im Label an, sobald die Schleife abgeschlossen ist. Shell funktioniert gut. DankPython Tkinter Etikett zu Loop-Ereignis binden
from Tkinter import*
import tkMessageBox
import time
top = Tk()
top.geometry("500x500+100+200")
w =[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1620]
def bello():
for pp in w :
print(pp)
myLabel = Label(top, text=pp).grid(row=6, column=0, sticky='e')
time.sleep(1)
B1 = Button(top, text = "Say Hello", command = bello)
B1.place(x=50, y=50)
top.mainloop()
Warum machen Sie 16 neue Top-Labels auf voneinander jedes Mal ' Bello heißt? Einfach 1 Etikett machen und in "bello" mit dem neuen Text aktualisieren. Übrigens, es ist keine gute Idee, 'time.sleep' in Tkinter-Programmen zu verwenden, werfen Sie einen Blick auf die 'widget.after'-Methode. Außerdem gibt die '.grid' Methode' None' zurück, also 'myLabel = Label (oben, text = pp) .grid (row = 6, column = 0, sticky = 'e')' setzt 'myLabel' auf' None '. –