Key & Input -Listener?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Guten Tag!

Nachdem ich eine Zeit lang eine Pause eingelegt habe, und mich dann mit Java beschäftigt habe, würde ich mal behaupten, dass ich ein paar Grundprinzipien der Programmierung verstehe (Wenn ich meine Threads von früher anschaue... :roll: ). Heute wollte ich wieder mit Python anfangen, und irgendetwas in der Konsole bewerkstelligen. Allerdings hätte ich jetzt mehrere Fragen:
Hat Python (von Haus aus - Ohne irgendwelche externen Librarys!) einen Key & Input -Listener? Ich würde gerne KeyEvents, also sobald man eine Taste drückt, abfangen, und diese dann verarbeiten. Dann zu den Input-Listenern: Via raw_input wird der Input ja "geforct". Ich will aber, dass der User immer etwas eingeben kann - Und diese Eingabe auch abgefangen wird. Wahrscheinlich stelle ich mich gerade nur wieder dumm an, aber gut... :oops:


MfG
-
BlackJack

@Pyanfänger: Einzelne Tasten ist schwierig, weil das nicht plattformunabhängig ist. Für einen Eingabe-Listener könntest Du Dir einen Thread mit dem `threading`-Modul schreiben. Beziehungsweise die anderen arbeiten in Threads erledigen, denn Signale, also zum Beispiel ein `KeybardInterrupt` werden nur im Hauptthread verarbeitet.

Was hast Du denn *eigentlich* vor?
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

@BlackJack Vielen Dank, ich gucke mir das Modul mal an!

Was ich vorhabe weiß ich eigentlich nicht. Erstes Projekt ist wohl, mich wieder mit der Syntax vertraut zu machen.. ^^
Wollte eig. irgendetwas mit der Konsole anfangen - Quasi irgendeine "GUI" (Wenn man es so nennen kann :roll:), welche mit Buchstaben gerendert wird.

MfG

EDIT: Oh, und noch eine Frage:
Gibt es eine Möglichkeit, die Konsole "doppelzupuffern"? Zurzeit habe ich einen Loop, welcher eine Render-Methode aufruft - Natürlich flackert der Bildschirm dann. Also brauche ich irgendwie einen Doppelpuffer, habe aber keine Ahnung, wie ich den mit der Konsole ermöglichen soll...
-
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Es gibt genug curses-artige Module, unter anderem curses (wer hätte es gedacht) und urwid. Diese können Tasten abfangen und bieten etwas komfortableres zeichenbasiertes Rendering an.
BlackJack

@Pyanfänger: Die Antwort ist die selbe wie bei der Tasteneingabe: Das ist extrem von der Plattform und der verwendeten Konsole abhängig. Natürlich geht das, damit begibt man sich aber auf eine Ebene in der man mit Python eigentlich nichts zu tun haben will, insbesondere wenn es schon Bibliotheken dafür gibt. Unter Linux & Co ist das `curses`-Modul in der Standardbibliothek und es gibt mit dem externen `urwid` eine ganz nette Text-UI-Bibliothek. Und unter Windows sind Text-UIs einfach nicht „normal”, da würde ich gleich auf eine GUI setzen.
Antworten