Python Curses Handling Window (Terminal) Redimensionner
il s'agit en fait de deux questions:
- comment redimensionner une fenêtre de malédictions, et
- comment gérer un terminal redimensionné en malédictions?
Est-il possible de savoir quand une fenêtre a changé de taille?
je ne peux vraiment pas trouver une bonne doc, même pas couverts sur http://docs.python.org/library/curses.html
3 réponses
l'événement de redimensionnement du Terminal se traduira par curses.KEY_RESIZE
code de la clé. Par conséquent vous pouvez gérer terminal redimensionner dans le cadre d'une boucle principale standard dans un malédictions programme, en attente d'entrée avec getch
.
j'ai eu mon programme python pour re-dimensionner le terminal en faisant quelques choses.
# Initialize the screen
import curses
screen = curses.initscr()
# Check if screen was re-sized (True or False)
resize = curses.is_term_resized(y, x)
# Action in loop if resize is True:
if resize is True:
y, x = screen.getmaxyx()
screen.clear()
curses.resizeterm(y, x)
screen.refresh()
pendant que j'écris mon programme je peux voir l'utilité de mettre mon écran dans sa propre classe avec toutes ces fonctions définies ainsi tout ce que j'ai à faire est d'appeler Screen.resize()
et il prendra soin du reste.
ce n'est pas juste. C'est un ncurses-only
extension. La question posée à propos de curses
. Pour ce faire d'une manière conforme aux normes, vous devez piéger SIGWINCH
vous-même et faire en sorte que l'écran soit redessiné.