Seite 1 von 1

Spezielle Tasten ansteuern in Python!?

Verfasst: Samstag 22. Mai 2010, 19:35
von bankkind
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?

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Samstag 22. Mai 2010, 19:48
von DasIch
Schau dir mal Urwid an.

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Montag 24. Mai 2010, 21:42
von bankkind
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

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Montag 24. Mai 2010, 22:43
von Leonidas
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?
Urwid nutzt curses aber curses willst du gar nicht selbst nutzen, außer du magst rausfinden warum es auf englisch "Flüche" heißt.

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Dienstag 25. Mai 2010, 10:47
von bankkind
OK, habe ich verstanden.

Gibt es ansonsten noch andere alternativen?

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Dienstag 22. Juni 2010, 12:49
von bankkind
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?

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Dienstag 22. Juni 2010, 22:54
von jerch
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#p151032

So findest Du die Keycodes:

Code: Alles auswählen

while True:
    time.sleep(.1)
    raw = ''
    while kbhit():
        raw += getch()
    if raw:
        print repr(raw)
Die Codes sind allerdings von Terminaltyp abhängig. Windows nutzt völlig andere als ANSI-Terminals, wobei sich letztere auch unterscheiden können (hier reicht Dir wahrscheinlich xterm als Standard). Nicht zuletzt deshalb wurde die curses-Bibliothek entwickelt ;)

Re: Spezielle Tasten ansteuern in Python!?

Verfasst: Mittwoch 23. Juni 2010, 14:19
von bankkind
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?