stdscr library python resize curses

library - python getch



Python Curses Handling Window(Terminal) Redimensionar (3)

No esta bien Es una extensión ncurses-only . La pregunta formulada sobre las curses . Para hacer esto de una manera que SIGWINCH estándares, debe atrapar a SIGWINCH usted mismo y hacer que la pantalla se SIGWINCH a dibujar.

Esto es realmente dos preguntas:

  • ¿Cómo puedo cambiar el tamaño de una ventana de curses, y
  • ¿Cómo trato con un terminal de tamaño en curses?

¿Es posible saber cuando una ventana ha cambiado de tamaño?

Realmente no puedo encontrar ningún buen documento, ni siquiera cubierto en http://docs.python.org/library/curses.html


Obtuve mi programa de Python para redimensionar el terminal haciendo un par de cosas.

# 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()

Mientras escribo mi programa puedo ver la utilidad de poner mi pantalla en su propia clase con todas estas funciones definidas, así que todo lo que tengo que hacer es llamar a Screen.resize() y se encargará del resto.


El evento de cambio de tamaño de la terminal dará como resultado el código de la clave curses.KEY_RESIZE . Por lo tanto, puede manejar el tamaño del terminal como parte de un bucle principal estándar en un programa de curses, esperando la entrada con getch .