Button gleichzeitig Mausklick und Keyboard-Taste zuweisen

Fragen zu Tkinter.
Antworten
way2slow
User
Beiträge: 19
Registriert: Sonntag 14. Februar 2016, 22:27
Wohnort: Hamburg

Hi, ich bin neu hier im Forum und auch in Python. Ich hab eine kleine Frage, für die ich bisher leider keine Lösung recherchieren konnte:

Ich habe ein tkinter.Button Objekt und eine Funktion "ende", die den Toplevel-Thread ("speichern") beendet. Ich will, dass man den Button auch mit der Enter-Taste aktiviert. Also mache ich es wie folgt: speichern.bind("<Return>", ende). Damit das funktioniert, ergänze ich die Funktionsdefinition von "ende" um den Parameter (event). So weit, so gut. Nur leider, und das ist das Problem, wirft Python einen Fehler, wenn ich den Button anklicke. Diesem habe ich nämlich mit (command=ende) dieselbe Funktion zugewiesen. Python moniert nun, dass ein Parameter fehlt. Ich könnte eine zweite Version derselben Funktion definieren, aber das kann's ja irgendwie nicht sein.

Vielen Dank schonmal!
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@way2slow: dafür kann man Default-Argumente benutzen, die verwendet werden, wenn kein Argument übergeben wurde:

Code: Alles auswählen

def ende(event=None):
    print "Das ist das Ende"
way2slow
User
Beiträge: 19
Registriert: Sonntag 14. Februar 2016, 22:27
Wohnort: Hamburg

Dankeschön. Das war's, was ich brauchte!
Antworten