我在Windows上,curses模块不是原生的,所以我在python3.2上使用Windows curses模块,发现here。
我的目标是调整终端的大小,它目前的大小是25行x 80列。首先,我尝试了curses.resizeterm(lines, cols)命令,该命令显然在windows curses模块中找不到( hasattr(curses, 'resizeterm')返回false)。所以我看了一下替代的模块unicurses,它也是用于windows的,但它甚至没有resize命令。
因此,我做了更多的阅读并学习了环境变量'LINES'和'COLS',当由os.environ设置它们时,应该调整终端的大小。在某种程度上,他们确实做到了。终端本身调整了大小,但显示终端的Windows程序的大小仍然与以前相同,即25x80。我已经确认了这两个变量确实已经更改,并在左上角写了一个小东西来显示它们。此外,box()函数确实在屏幕周围绘制了一个边框,就好像它更改了变量一样。
那么,有没有人能解释一下: 1)如何调整“窗口”的大小以匹配终端;2)如何让resizeterm()在我的python安装上工作?我的程序的相关代码和它的样子的图片附在下面。

import random, sys, math, curses, os
from curses import *
curses.use_env(True)
os.environ['LINES'] = "80"
os.environ['COLS'] = "60"
stdscr = curses.initscr()
curses.noecho()
curses.cbreak()
curses.start_color()
stdscr.keypad(1)
curses.curs_set(0)
LINES, COLS = stdscr.getmaxyx()发布于 2021-07-29 16:51:28
下面的代码可能会有帮助:
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()https://stackoverflow.com/questions/14995664
复制相似问题