[英]How can I make a portable curses interface?
我正在嘗試在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
通過調用(使用的ncurses) getch
,這將返回KEY_RESIZE
時的ncurses得到由中斷SIGWINCH
。
進一步閱讀:
initscr
手冊頁) getch
手冊頁)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.