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

16
demandé sur Pez Cuckow 2011-03-02 02:10:49

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.

19
répondu Michael McLoughlin 2011-03-04 09:51:54

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.

7
répondu jarsever 2016-02-25 23:58:29

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é.

-1
répondu user3237013 2014-01-26 07:41:38