Seite 1 von 1

bild ersetzt und alles weg

Verfasst: Sonntag 10. April 2005, 16:27
von Arminius
hallo, ich habe mehrere buttons in einem array. nun starte ich folgende funktion:

Code: Alles auswählen

    def change(self):
        self.photo=PhotoImage(file='brute.gif')
        self.buttons[1][1].config(image=self.photo)
dannach sind alle buttons weg und nur der geändere button erscheint, dass allerdings auch nicht an seiner eigentlichen stelle. weis jemand woran das liegt und wie ich es verhindern kann?

Verfasst: Montag 11. April 2005, 12:59
von Arminius
weis denn keiner wie es sein kann, dass die buttons verschwinden und der eine button nicht an seiner eigentlichen position ist?

Verfasst: Montag 11. April 2005, 13:44
von mawe
Hi!

Kannst Du bitte etwas mehr Code zeigen, anhand diesen 3 Zeilen kann man wirklich nichts sagen.

Gruß, mawe

Verfasst: Montag 11. April 2005, 16:39
von Arminius

Code: Alles auswählen

self.buttons[1][1]=Button(frame,border=1,image=self.photo,command=self.change)
self.buttons[1][1].place(x=1,y=1)
wenn ich jetzt auf diesen button klicke, soll er eigentlich sein bild ändern, allerdings verschwinden alle Buttons und nur dieser erscheint mit dem neuem Bild an einer ganz anderen position

Verfasst: Montag 11. April 2005, 16:54
von mawe
Hi!

Sehr witzig! Statt 3 Zeilen bietest Du jetzt als "mehr" Information 2 Zeilen.
Arminius hat geschrieben: weis denn keiner wie es sein kann, dass die buttons verschwinden und der eine button nicht an seiner eigentlichen position ist?
Nein. Und mit den Informationen die Du lieferst stehen die Chancen schlecht dass Du eine brauchbare Antwort bekommst.
Also zeig doch bitte etwas mehr. Was z.B. interessant wäre, wie werden denn die anderen Buttons (die dann verschwinden) erzeugt. Wenns nicht zu lang ist, poste einfach das ganze Programm. Ansonsten streich alles unnötige und zeig den Rest.

Gruß, mawe

Verfasst: Montag 11. April 2005, 22:23
von BlackJack
Ich rate trotzdem mal. Soweit ich weiss muss man bei Tkinter selber dafür sorgen, dass immer eine Referenz auf Bilder besteht, die man in die GUI einbaut.

Diese Referenz ist bei Dir `self.photo` und wenn Du in `change` ein anderes Bild an diesen Namen bindest, dann verschwindet das vorherige aus dem Speicher.

Verfasst: Montag 11. April 2005, 22:43
von mawe
Hi Blackjack!

Da hast Du recht, allerdings verschwinden die Buttons dann nicht, sondern nur die Bilder :wink: (und der mit dem neuen Bild sollte auch da bleiben wo er war).

@Arminius:
Wenn das bei Dir so passiert, versuchs mal so:

Code: Alles auswählen

 def change(self):
        self.new_photo=PhotoImage(file='brute.gif')
        self.buttons[1][1].config(image=self.new_photo) 
Gruß, mawe