【发布时间】:2017-03-04 16:37:48
【问题描述】:
我正在尝试在 Python 中的 Curses 中创建一个界面,但我想知道在执行脚本时窗口终端增加时如何使其更便携。
比如这个代码在一个窗口(height:80,width:24):
#!/usr/bin/python
import curses
import time
stdscr = curses.initscr()
curses.cbreak()
curses.noecho()
stdscr.keypad(1)
try:
# Run your code here
height,width = stdscr.getmaxyx()
num = min(height,width)
for x in range(num):
stdscr.addch(x,x,'X')
stdscr.refresh()
time.sleep(3)
finally:
curses.nocbreak()
stdscr.keypad(0)
curses.echo()
curses.endwin()
可以工作并且可以与任何窗口一起移植(它会为整个窗口的大小打印许多“X”字符),但是如果我在执行过程中第二次调整它的大小,它将无法工作并且它会是空的对于终端的某些部分。
我怎样才能让它按我想要的方式工作?
【问题讨论】:
-
有一个信号会告诉你窗口大小何时发生变化,称为
SIGWINCH,所以我想你需要抓住它并获得新的大小并重新绘制你的诅咒东西......不知何故:-) -
@MarkSetchell 你能举个例子吗?
-
对不起,我没有。
标签: python terminal python-2.x ncurses curses