Prüfen welches Bild bei Label gesetzt ist

Fragen zu Tkinter.
Antworten
Gerenuk
User
Beiträge: 69
Registriert: Donnerstag 21. Januar 2010, 22:27

Ich habe ein bisschen programmiert und für mein Programm ist die einfachste Lösung, wenn ich irgendwie auslesen könnte, was für ein Bild bei Label gesetzt ist. Also probiere ich

Code: Alles auswählen

import Tkinter as tk
from PIL import Image, ImageTk

class App:
    def __init__(self, master):
        self.imgOrange = ImageTk.PhotoImage(Image.open("orange.png"))
        label=tk.Label(master, image=self.imgOrange)
        label.pack()
   
        if label["image"]==self.imgOrange:
            print "Ja!!!"

root = tk.Tk()
app = App(root)
root.mainloop() 
aber es ist vielleicht nicht überraschend, dass der Vergleich nicht funktioniert.

Wie schaffe ich es zu prüfen, welches Bild ich ursprünglich mal gesetzt habe?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Wenn du Zeile 10 so abänderst, funktioniert es:

Code: Alles auswählen

if label["image"] == str(self.imgOrange):
Bist du sicher, dass es das ist, was du willst?
Vielleicht wäre es günstiger, das label mit einem Attribut "imgname" o.ä. zu versehen und darin den/einen Namen der Grafik(datei) abzulegen?
Gerenuk
User
Beiträge: 69
Registriert: Donnerstag 21. Januar 2010, 22:27

Ah OK. Der key access macht wohl einen string draus.

Dann versuche ich mal ins Label ein extra Attribut reinzumehren. Danke! :)
Antworten