Hallo zusammen,
ich will momentan ein wenig rumspielen und frage mich wie man speziella Tasten auf der Tastatur ansteuern kann? z.B.: möchte ich der Escape-Taste in meinem Programm eine spezielle Funktion zuweisen. Wie soll ich das anstellen?
Habe jetzt dafuer nur raw_input() gefunden, gibt es noch eine Alternative dafuer?
Spezielle Tasten ansteuern in Python!?
-
- User
- Beiträge: 106
- Registriert: Freitag 14. September 2007, 23:02
- Wohnort: Teltow
- Kontaktdaten:
OK, habe jetzt gerade mal ein wenig mit urwd rumgespielt und es bietet wahrscheinlich auch alles was ich brauche.
Ich möchte jetzt zwar nicht das Rad neu erfinden, aber wüsste schon gerne, ob dass (also reagieren auf Spezialtasten z.b.: Pfeiltasten, strg, enter, etc.) auch mit Python-Boardmitteln machbar ist.
Ich habe nach ein wenig googlen noch das Python Modul curses gefunden. Ohne da jetzt weiter reingeschaut zu haben. Hat jemand damit Erfahrung bzw. ist es das was ich suche?
VG
Ich möchte jetzt zwar nicht das Rad neu erfinden, aber wüsste schon gerne, ob dass (also reagieren auf Spezialtasten z.b.: Pfeiltasten, strg, enter, etc.) auch mit Python-Boardmitteln machbar ist.
Ich habe nach ein wenig googlen noch das Python Modul curses gefunden. Ohne da jetzt weiter reingeschaut zu haben. Hat jemand damit Erfahrung bzw. ist es das was ich suche?
VG
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Urwid nutzt curses aber curses willst du gar nicht selbst nutzen, außer du magst rausfinden warum es auf englisch "Flüche" heißt.bankkind hat geschrieben:Ich habe nach ein wenig googlen noch das Python Modul curses gefunden. Ohne da jetzt weiter reingeschaut zu haben. Hat jemand damit Erfahrung bzw. ist es das was ich suche?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 106
- Registriert: Freitag 14. September 2007, 23:02
- Wohnort: Teltow
- Kontaktdaten:
Hallo nochmal zusammen,
ich muss das Thema nochmal aufgreifen, habe leider immer noch keine saubere Loesung gefunden ohne ein MegaModul zu implementieren. ich will ausschliesslich Sondertasten wie z.B.: ESC, Cursor, evtl FUnktionstasten bestimmte Funktionionen zuweisen.
Das muss doch machbar sein? Desweiteren moechte ich eine Loesung die unter Linux und Windows gleichermassen bzw. relativ aehnlich funktioniert.
Gibt es irgendetwas?
Ich muss ja anscheinend nur eine Tasteneingabe abfangen, irgendwie, und das Steuerzeichen uebersetzen/vergleichen oder?
ich muss das Thema nochmal aufgreifen, habe leider immer noch keine saubere Loesung gefunden ohne ein MegaModul zu implementieren. ich will ausschliesslich Sondertasten wie z.B.: ESC, Cursor, evtl FUnktionstasten bestimmte Funktionionen zuweisen.
Das muss doch machbar sein? Desweiteren moechte ich eine Loesung die unter Linux und Windows gleichermassen bzw. relativ aehnlich funktioniert.
Gibt es irgendetwas?
Ich muss ja anscheinend nur eine Tasteneingabe abfangen, irgendwie, und das Steuerzeichen uebersetzen/vergleichen oder?
Mit den Funktionen kbhit/getch kannst Du die Eingabe direkt abfragen. Für Windows gibts die Funktionen im Modul msvcrt, für POSIX im Netz oder hier --> http://www.python-forum.de/viewtopic.ph ... 32#p151032Ich muss ja anscheinend nur eine Tasteneingabe abfangen, irgendwie, und das Steuerzeichen uebersetzen/vergleichen oder?
So findest Du die Keycodes:
Code: Alles auswählen
while True:
time.sleep(.1)
raw = ''
while kbhit():
raw += getch()
if raw:
print repr(raw)
-
- User
- Beiträge: 106
- Registriert: Freitag 14. September 2007, 23:02
- Wohnort: Teltow
- Kontaktdaten:
Hallo jerch,
das ist genau das was ich suche.
Allerdings hast du wohl recht, dass das hier ein komplexes Thema ist. Bevor ich da eine Plattform unabhaengige Loesung habe, suche ich mir lieber eine andere Loesung. Bzw. greife doch auf curses zurueck. Wobei es curses nicht unter Win32 gibt oder?
das ist genau das was ich suche.
Allerdings hast du wohl recht, dass das hier ein komplexes Thema ist. Bevor ich da eine Plattform unabhaengige Loesung habe, suche ich mir lieber eine andere Loesung. Bzw. greife doch auf curses zurueck. Wobei es curses nicht unter Win32 gibt oder?