首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整curses终端的大小不会调整程序窗口的大小

调整curses终端的大小不会调整程序窗口的大小
EN

Stack Overflow用户
提问于 2013-02-21 14:07:24
回答 1查看 3.3K关注 0票数 1

我在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安装上工作?我的程序的相关代码和它的样子的图片附在下面。

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2021-07-29 16:51:28

下面的代码可能会有帮助:

代码语言:javascript
复制
 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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14995664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档