Bild wird nur 1mal angezeigt

Fragen zu Tkinter.
abrandl
User
Beiträge: 5
Registriert: Sonntag 13. August 2006, 09:47

Bild wird nur 1mal angezeigt

Beitragvon abrandl » Dienstag 15. August 2006, 23:27

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=]
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()
[/code]

Vielleicht ist es auch nur ein ganz dummer Fehler. Ich bin euch jedenfalls um jeden Ratschlag dankbar!
lg abrandl
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Mittwoch 16. August 2006, 13:37

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
abrandl
User
Beiträge: 5
Registriert: Sonntag 13. August 2006, 09:47

Beitragvon abrandl » Mittwoch 16. August 2006, 15:27

Ok, ja so funktionierts!
Herzlichen Dank!

lg abrandl

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder