Frage

Ich versuche, Tastendrücke zu erfassen, so dass, wenn eine bestimmte Kombination gedrückt wird ich ein Ereignis auslösen.

Ich habe um für Tipps gesucht wie, um loszulegen und die einfachste Code-Schnipsel I ist in Python finden - Ich packte unten den Code für sie von hier . Allerdings, wenn ich dies von einem Terminal laufen und einige Tasten getroffen, nach der „eine Taste drücken ...“ Aussage nichts passiert.

Bin ich dumm? Kann mir jemand erklären, warum nichts passiert, oder einen besseren Weg vorschlagen, dies zu erreichen unter Linux (alle Sprachen berücksichtigt!)?

import Tkinter as tk

def key(event):
    if event.keysym == 'Escape':
        root.destroy()
    print event.char

root = tk.Tk()
print "Press a key (Escape key to exit):"
root.bind_all('<Key>', key)
# don't show the tk window
root.withdraw()
root.mainloop()
War es hilfreich?

Lösung 4

Nun, es stellt sich heraus, ist eine viel einfachere Lösung, wenn GNOME verwenden, die keine Programmierung beteiligt ist überhaupt ...

http://www.captain.at/howto -gnome-custom-Hotkey-Tastatur-shortcut.php

Archivierte auf Wayback

Erstellen Sie einfach das Skript / ausführbar durch die Tastenkombination ausgelöst werden und zeigt den Eintrag ‚keybinding_commands‘ Sie in gconf-editor es schaffen.

Warum habe ich nicht denke, dass früher?

Andere Tipps

Tk scheint es nicht zu bekommen, wenn man das Fenster nicht angezeigt werden soll. Versuchen Sie:

import Tkinter as tk

def key(event):
    if event.keysym == 'Escape':
        root.destroy()
    print event.char

root = tk.Tk()
print "Press a key (Escape key to exit):"
root.bind_all('<Key>', key)
# don't show the tk window
# root.withdraw()
root.mainloop()

funktioniert bei mir ...

Was Sie tun /dev/tty in "raw" -Modus zu lesen.

Normale Linux-Eingang „gekocht“ -. Marke zurück und Zeilenende für Sie behandelt wurden

Um ein Gerät wie die Tastatur in „raw“ Modus zu lesen, Sie direkte Linux-API-Aufrufe IOCTL vornehmen müssen.

Lesen Sie http://code.activestate.com/recipes/68397/ für einige Hinweise zu diesem Thema. Ja, das ist das Rezept in tcl, aber es gibt Ihnen einen Hinweis auf das weitere Vorgehen.

Alternativ (eine nicht-Python-Option) verwenden XBindKeys .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top