Problem bei Mouse Event Binding zusammen mit Lambda
Verfasst: Sonntag 9. September 2018, 09:59
Ich habe einen Tkinter-Button und möchte gerne unterschiedliche Funktionen ausführen, abhängig davon, ob ich mit der linken oder rechten Maustaste drücke. Gleichzeitig soll aber eine Variable an die Callback-Funktion übergeben werden. Der Wert der Variablen kommt aber nicht bei der Funktion an. Hier ein Minimalbeispiel:
Bei Click mit der rechten Maustaste erhalte ich als Ausgabe statt 'Hello':
Aus irgendeinem Grund scheint also der Event-Handler übergeben zu werden. Kann mir da jemand weiterhelfen?
Code: Alles auswählen
from tkinter import Button,Tk
app = Tk()
a='Hello'
but = Button(app,text='click')
but.bind('<Button-3>',lambda a=a: print(a))
but.pack()
Code: Alles auswählen
<ButtonPress event state=Mod1 num=3 x=16 y=13>