Ich möchte ein Bild auf einem Tkinter Label austauschen können, aber ich bin mir nicht sicher, wie es geht, außer das Widget selbst zu ersetzen.Wie wird das Image eines Tkinter Label-Widgets aktualisiert?
Derzeit kann ich ein Bild wie so angezeigt werden:
import Tkinter as tk
import ImageTk
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
root.mainloop()
Wenn jedoch der Benutzer trifft, sagen die ENTER
Schlüssel, ich möchte das Bild ändern.
import Tkinter as tk
import ImageTk
root = tk.Tk()
img = ImageTk.PhotoImage(Image.open(path))
panel = tk.Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")
def callback(e):
# change image
root.bind("<Return>", callback)
root.mainloop()
Ist das möglich?
Sollte die Zeile im Callback 'panel.image = img2' lauten? – 101
@figs scheint so, würde Sinn machen. Ich erinnere mich nicht daran, diese Verwendung speziell modifizieren zu müssen, aber das war auch vor vier Jahren. Könnten Sie es testen, um es zu überprüfen? – skeggse
Ja, das war wahrscheinlich das Problem. Getestet mit etwas anderem Code, aber mit demselben Problem. –