Seite 1 von 1

Bild wird nur 1mal angezeigt

Verfasst: Dienstag 15. August 2006, 23:27
von abrandl
Hi Leute,

Ich habe eine Klasse NewPic definiert die Bilder in mein Fenster setzt.
Beim ersten Mal geht's auch noch gut, und das Bild wird angezeigt. Drück ich jedoch den Button nochmal, in der Hoffnung das er das Bild dann 2 mal anzeigt, ergibt sich das Problem:
Er zeigt NUR noch das zweite Bild an...

Hier der Code:

Code: Alles auswählen

from Tkinter import*

class GuiTool:
    def __init__(self, parent):
        self.myparent = parent
        self.frame1 = Frame(self.myparent)
        self.frame1.pack()

        self.b_newpic = Button(self.frame1, text = 'newpic', command = self.neupic)
        self.b_newpic.pack()

    def neupic(self):
        self.Pic = NewPic(self.frame1)
        
class NewPic:
    def __init__(self, parent):
        
        self.foto = PhotoImage(file='Bild.gif')
        
        self.picframe = Frame(parent, relief = 'sunken', border = 5)
        self.picframe.pack()
               
        self.pic = Canvas(self.picframe)
        
        self.pic.pack()
        self.pic.create_image(0,0,image = self.foto, anchor = 'nw')

root = Tk()
root.title('GuiTool')
GuiToolObjekt = GuiTool(root)
root.mainloop()
Vielleicht ist es auch nur ein ganz dummer Fehler. Ich bin euch jedenfalls um jeden Ratschlag dankbar!
lg abrandl

Verfasst: Mittwoch 16. August 2006, 13:37
von HWK
Du speicherst NewPic immer in derselben Variablen. Probier mal folgendes:

Code: Alles auswählen

class GuiTool: 
    def __init__(self, parent):
        self.Pic = []
        self.myparent = parent 
        self.frame1 = Frame(self.myparent) 
        self.frame1.pack() 

        self.b_newpic = Button(self.frame1, text = 'newpic', command = self.neupic) 
        self.b_newpic.pack() 

    def neupic(self): 
        self.Pic.append(NewPic(self.frame1))
MfG
HWK

Verfasst: Mittwoch 16. August 2006, 15:27
von abrandl
Ok, ja so funktionierts!
Herzlichen Dank!

lg abrandl