1

我在 Windows 上,curses 模块不是本机的,所以我正在使用适用于 python 3.2 的 Windows curses 模块,在此处找到。

我的目标是调整终端的大小,目前终端的大小为 25 行 x 80 列。首先,我尝试了该curses.resizeterm(lines, cols)命令,该命令显然在 windows curses 模块中找不到(并hasattr(curses, 'resizeterm')返回 false)。因此,我查看了替代模块 unicurses,它也适用于 Windows,但它甚至没有调整大小命令。

所以我做更多的阅读和了解环境变量'LINES''COLS'当设置时os.environ,应该调整终端的大小。他们确实这样做了。终端本身被调整了大小,但是显示终端的 Windows 程序仍然是和以前一样大小,25 x 80。我已经确认这两个变量确实已经改变了,写了一个小东西来显示它们在左上角。此外,该box()函数确实在屏幕周围绘制了一个边框,就好像变量已更改一样。

那么,任何人都可以解释 1)如何调整“Windows 窗口”的大小以匹配终端或 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()
4

1 回答 1

0

此代码可能会有所帮助:

 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()
于 2021-07-29T16:51:28.427 回答