Hilfe Pmw --->Image

Fragen zu Tkinter.
Antworten
Brok3r
User
Beiträge: 29
Registriert: Montag 24. Oktober 2005, 13:48

Hallo zusammen!

Hoffe irgendjemand der sich damit auskennt kann mir eventuell weiterhelfen.Ich habe mit hilfe von Pmw ein Notebook widget erstellt und diese in 2 Groups eingeteilt.
In einem der beiden interior() möchte ich nun ein Bild wiedergeben.
Egal mit welcher Methode ich das nun mache ob mit dem PhotoImage oder BitmapImage oder sogar mit den Methoden von PIL er zeigt mir einfach nicht das Bild an...

Füge ich nun den selben Programmcode in einem anderen Programm ein zeigt er mir sofort das gewollte Bild.

-->Der Fehler liegt wohl oder übel am Handling der Pmw.notebooks mit Images :-(

Kann mir jemand damit weiterhelfen habe schon Stunden damit verbracht zu googlen oder in diversen Foren nachzulesen aber ohne Erfolg :-(
Gast

Da noch niemand geantwortet hat poste ich mal den Programmcode:

Code: Alles auswählen

        image = Image.open('c:/ICON_TEST/test.bmp') 
        photo = ImageTk.PhotoImage(image) 
        
        self.job_symbol = Tkinter.Label(self.steuerung.interior(), image = photo)
          
        self.job_symbol.pack()      
Der Code funktioniert bei mir einwand frei in einer neuen Tk() Instanz fuege ich ihn nun in ein Pmw.notebook ein und will ihn dann im interior() der Gruppe steuerung darstellen lassen wird er zwar ausgeführt jedoch kein image dargestellt...

Vielleicht liegt es auch am packer ich habe keine ahnung mehr versuche mich schon 1 Tag dran und finde einfach keine Lösung..
Vielleicht seh ich aber auch den Wald vor lauter Bäumen nicht....
Deshalb Leute bitte helft :roll:

Edit (Leonidas): Code in Python-Tags gesetzt.
Brok3r
User
Beiträge: 29
Registriert: Montag 24. Oktober 2005, 13:48

OK ich habs geschafft nach genauem durchlesen habe ich den "fehler" entdeckt

Auszug aus http://effbot.org/tkinterbook/label.htm
You can use the label to display PhotoImage and BitmapImage objects. When doing this, make sure you keep a reference to the image object, to prevent it from being garbage collected by Python's memory allocator. You can use a global variable or an instance attribute, or easier, just add an attribute to the widget instance:

photo = PhotoImage(file="icon.gif")
w = Label(parent, image=photo)
w.photo = photo
w.pack()
denke damit sollte alles klar sein auch wenn sich niemand auf meinen Thread meldet hat so wollte ich zumindest für alle die das selbe Problem haben oder hatten den möglichen Fehler zeigen

Mein Code sieht nun so aus:

Code: Alles auswählen

        image = Image.open('c:/ICON_TEST/test.bmp') 
        photo = ImageTk.PhotoImage(image) 
                
        
        self.job_symbol = Tkinter.Label(self.steuerung.interior(), image = photo)        
        self.job_symbol.photo = photo
        self.job_symbol.pack(expand = 1)

Sorrry für den dreifachpost :wink:
Antworten