Seite 1 von 1

jedes Bild in einem Ordner: Button und bei Klick Bild öffnen

Verfasst: Donnerstag 10. November 2011, 15:42
von Kegelkugel
[gelöst!]

Hallo,

ich habe gerade folgendes Problem: Ich hab' eine Toolbar. Diese soll für jedes Bild in einem Ordner ein Symbol bekommen. Klickt man auf das Symbol, soll das Bild geöffnet werden.
Mein Code sieht zur Zeit so aus:

Code: Alles auswählen

toolbar = self.CreateToolBar()
for imgFile in images:
	imgTool = toolbar.AddLabelTool(wx.ID_ANY, ' ', wx.Bitmap("data/user/" + imgFile))
	self.Bind(wx.EVT_TOOL, lambda event: self.openImage(event, imgFile), imgTool)
toolbar.Realize()
Der Funktion self.openImage müssen event und Bilddatei-Name übergeben werden.
Der Fehler zur Zeit ist, dass egal, auf welches Symbol in der Toolbar ich klicke, es öffnet sich immer das letzte Objekt in der Reihe.
Kann mir jemand helfen?
Danke!

Grüße,
Markus

Re: jedes Bild in einem Ordner: Button und bei Klick Bild öf

Verfasst: Donnerstag 10. November 2011, 15:52
von deets
Das liegt an deinem Lambda - der gebildete Closure bindet immer nur das letzte imgFile.

Mach stattdessen

Code: Alles auswählen

lambda event, imgFile=imgFile: self.openImage(event, imgFile)
Dann klappt's.

Re: jedes Bild in einem Ordner: Button und bei Klick Bild öf

Verfasst: Donnerstag 10. November 2011, 16:11
von Kegelkugel
:-)

Danke, funktioniert!