Pfeiltasten/Maus auslesen

Fragen zu Tkinter.
Antworten
HardwareManager
User
Beiträge: 59
Registriert: Freitag 31. Mai 2013, 21:18

Gibt es einen weg wie man die Pfeiltasten oder die Maus auslesen kann ohne das Programm aufzuhalten?
ImmmerEineGuteIdee
|=|=|=|=|=|=|=|
HardwareManager
Schorlem
User
Beiträge: 40
Registriert: Dienstag 3. Juni 2014, 16:37

Wodurch sollte das Programm denn überhaupt aufgehalten werden?

Auf jeden Fall:

Code: Alles auswählen

root = Tk()
root.bind("<Right>", function)
Natürlich kann die .bind()-Funktion auf jedes Tk-Objekt angewendet werden (alternative Namen wären noch Left, Up und Down für die Pfeiltasten, auf Maustasten gehe ich unten weiter ein). Hier wurde "root" deshalb gewählt, damit die Events global aktiviert werden können.
Allgemeines über Events (da .bind() nicht nur auf Tasten und Mausklicks reagiert) findest du hier, Maustastennamen hier. "<Button-1>" ist die linke Maustaste, "<Button-3>" die rechte und "<Button-2>" ggf. die mittlere. Die ganzen Sachen können zusätzlich noch verändert werden (Doppelklick usw.), näheres weiterhin unter dem ersten Link.
Diese Nachricht wurde maschinell erstellt und ist daher ohne Unterschrift gültig.
HardwareManager
User
Beiträge: 59
Registriert: Freitag 31. Mai 2013, 21:18

Schorlem hat geschrieben:Wodurch sollte das Programm denn überhaupt aufgehalten werden?

Auf jeden Fall:

Code: Alles auswählen

root = Tk()
root.bind("<Right>", function)
Natürlich kann die .bind()-Funktion auf jedes Tk-Objekt angewendet werden (alternative Namen wären noch Left, Up und Down für die Pfeiltasten, auf Maustasten gehe ich unten weiter ein). Hier wurde "root" deshalb gewählt, damit die Events global aktiviert werden können.
Allgemeines über Events (da .bind() nicht nur auf Tasten und Mausklicks reagiert) findest du hier, Maustastennamen hier. "<Button-1>" ist die linke Maustaste, "<Button-3>" die rechte und "<Button-2>" ggf. die mittlere. Die ganzen Sachen können zusätzlich noch verändert werden (Doppelklick usw.), näheres weiterhin unter dem ersten Link.

Code: Alles auswählen

from tkinter import *

def f():
    print("<Right>")


root = Tk()
root.bind("<Right>", f())

>>> ================================ RESTART ================================
>>> 
<Right>
>>> 



Es gibt <Right> aus ohne das ich etwas mache.
ImmmerEineGuteIdee
|=|=|=|=|=|=|=|
HardwareManager
BlackJack

@HardwareManager: Doch Du machst etwas, nämlich *selber* die Funktion aufrufen. Und an die `bind()`-Methode wird deshalb nicht die Funktion übergeben, sondern deren Rückgabewert. Der ist, da kein explizites ``return`` verwendet wird `None`.
Antworten