簡體   English   中英

如何制作便攜式curses界面?

[英]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

進一步閱讀:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM