Je code actuellement une application en python à l'aide du module
curses que je commence à bien connaitre.
Cependant je me retrouve avec le problème suivant:
Alors que l'application réclame l'intervention de l'utilisateur
(typiquement choisir une action à faire en pressant la touche idoine),
il m'est impossible de récupérer les touches spéciales telles que
PAGEUP, PAGEDOWN, les Fn keys, UP, DOWN, RIGHT, LEFT, etc.
Que ce soit avec window.getch() ou window.getkey(), je récupère une
séquence de caractères séparés comme si l'utilisateur appuyait sur
plusieurs touches les unes après les autres.
Typiquement pour F1, je reçois:
null char
O
P
J'ai bien lu la doc:
https://docs.python.org/2/library/curses.html#curses.window.getch
qui précise qu'avec getkey() je devrais récupérer une chaine de caractères
représentant le nom de le nom de la touche (les touches curses.KEY_XXX dont
trouve le tableau dans la même doc).
Or, ce n'est pas le cas et malgré tous mes essais il m'a été impossible d'
déterminer la cause.
curses est initialisé de la manière suivante:
stdscr = curses.initscr()
stdscr.nodelay(1)
curses.start_color()
screen_y, screen_x = stdscr.getmaxyx()
curses.resizeterm(screen_y, screen_x)
curses.noecho()
curses.cbreak()
curses.curs_set(0)
self.stdscr.keypad(1)
Je pense avoir tenté toutes les combinaisons possibles de raw(), cbreak()
et keypad() sans succès.
C'est ennuyeux car je projetais d'utilier les touches PAGE_UP et PAGE_DOWN
pour le scrolling.
Merci de vos conseils et expériences.
--
Je ne connaîtrai rien de tes habitudes
Il se peut même que tu sois décédée
Mais j'demanderai ta main pour la couper
-- H.F. Thiéfaine, L'ascenceur de 22H43
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Doug713705
Le 13-11-2016, Doug713705 nous expliquait dans fr.comp.lang.python (<o09fau$5ed$) :
bonjour à toutes, tous, Je code actuellement une application en python à l'aide du module curses que je commence à bien connaitre. Cependant je me retrouve avec le problème suivant: Alors que l'application réclame l'intervention de l'utilisateur (typiquement choisir une action à faire en pressant la touche idoine), il m'est impossible de récupérer les touches spéciales telles que PAGEUP, PAGEDOWN, les Fn keys, UP, DOWN, RIGHT, LEFT, etc. Que ce soit avec window.getch() ou window.getkey(), je récupère une séquence de caractères séparés comme si l'utilisateur appuyait sur plusieurs touches les unes après les autres. Typiquement pour F1, je reçois: null char O P J'ai bien lu la doc: https://docs.python.org/2/library/curses.html#curses.window.getch qui précise qu'avec getkey() je devrais récupérer une chaine de caractères représentant le nom de le nom de la touche (les touches curses.KEY_XXX dont trouve le tableau dans la même doc).
Visiblement pas assez et pas la bonne car ici: https://docs.python.org/2/howto/curses.html#curses-howto on trouve au rayon 'user input', un exemple tout à fait fonctionnel. Dans les faits, il ne faut pas faire un getch() sur un objet window mais directement sur la fenètre principale /stdscr/. En lisant cette doc je me suis demandé si je n'avais pas déà posé la même question il y a quelques temps... Merci de m'avoir lu. -- J'suis la môme kaléidoscope. C'est moi qu'j'faisais l'trottoir d'en face Du temps ou j'avais dans l'carosse Une chatte qu'était pas radada -- H.F. Thiéfaine, La môme kaléïdoscope
Le 13-11-2016, Doug713705 nous expliquait dans
fr.comp.lang.python
(<o09fau$5ed$1@golgoth99.redatomik.org>) :
bonjour à toutes, tous,
Je code actuellement une application en python à l'aide du module
curses que je commence à bien connaitre.
Cependant je me retrouve avec le problème suivant:
Alors que l'application réclame l'intervention de l'utilisateur
(typiquement choisir une action à faire en pressant la touche idoine),
il m'est impossible de récupérer les touches spéciales telles que
PAGEUP, PAGEDOWN, les Fn keys, UP, DOWN, RIGHT, LEFT, etc.
Que ce soit avec window.getch() ou window.getkey(), je récupère une
séquence de caractères séparés comme si l'utilisateur appuyait sur
plusieurs touches les unes après les autres.
Typiquement pour F1, je reçois:
null char
O
P
J'ai bien lu la doc:
https://docs.python.org/2/library/curses.html#curses.window.getch
qui précise qu'avec getkey() je devrais récupérer une chaine de caractères
représentant le nom de le nom de la touche (les touches curses.KEY_XXX dont
trouve le tableau dans la même doc).
Visiblement pas assez et pas la bonne car ici:
https://docs.python.org/2/howto/curses.html#curses-howto
on trouve au rayon 'user input', un exemple tout à fait fonctionnel.
Dans les faits, il ne faut pas faire un getch() sur un objet window mais directement
sur la fenètre principale /stdscr/.
En lisant cette doc je me suis demandé si je n'avais pas déà posé la même question
il y a quelques temps...
Merci de m'avoir lu.
--
J'suis la môme kaléidoscope.
C'est moi qu'j'faisais l'trottoir d'en face
Du temps ou j'avais dans l'carosse
Une chatte qu'était pas radada
-- H.F. Thiéfaine, La môme kaléïdoscope
Le 13-11-2016, Doug713705 nous expliquait dans fr.comp.lang.python (<o09fau$5ed$) :
bonjour à toutes, tous, Je code actuellement une application en python à l'aide du module curses que je commence à bien connaitre. Cependant je me retrouve avec le problème suivant: Alors que l'application réclame l'intervention de l'utilisateur (typiquement choisir une action à faire en pressant la touche idoine), il m'est impossible de récupérer les touches spéciales telles que PAGEUP, PAGEDOWN, les Fn keys, UP, DOWN, RIGHT, LEFT, etc. Que ce soit avec window.getch() ou window.getkey(), je récupère une séquence de caractères séparés comme si l'utilisateur appuyait sur plusieurs touches les unes après les autres. Typiquement pour F1, je reçois: null char O P J'ai bien lu la doc: https://docs.python.org/2/library/curses.html#curses.window.getch qui précise qu'avec getkey() je devrais récupérer une chaine de caractères représentant le nom de le nom de la touche (les touches curses.KEY_XXX dont trouve le tableau dans la même doc).
Visiblement pas assez et pas la bonne car ici: https://docs.python.org/2/howto/curses.html#curses-howto on trouve au rayon 'user input', un exemple tout à fait fonctionnel. Dans les faits, il ne faut pas faire un getch() sur un objet window mais directement sur la fenètre principale /stdscr/. En lisant cette doc je me suis demandé si je n'avais pas déà posé la même question il y a quelques temps... Merci de m'avoir lu. -- J'suis la môme kaléidoscope. C'est moi qu'j'faisais l'trottoir d'en face Du temps ou j'avais dans l'carosse Une chatte qu'était pas radada -- H.F. Thiéfaine, La môme kaléïdoscope