这是我关于堆栈溢出的第一篇文章,所以我希望我做得正确。
我目前正在使用Python应用程序的终端用户界面。我知道那里有很多现成的库,例如npyscreen,但我想创建一个库作为编程练习。特别是,我想玩一些建筑模式来学习它们。
所有这些,我目前在使用[[python curses库时遇到一些问题,我正在使用与终端的低层接口。
当我尝试调整终端大小时会出现问题。从代码中可以看到(见下文),我在主循环中处理终端的大小调整,调用curses窗口的getmaxyx()()方法
并相应地重画屏幕上的内容。问题是,当我尝试调整终端大小时,屏幕似乎闪烁。
此外,我的“ curses应用程序”在MacOS上运行良好,但完全在Windows上崩溃
(即使在安装Windows curses之后)。 为了解决这个问题,我尝试使用blessed
库来重写底层接口。它解决了Windows崩溃的问题,但闪烁仍然存在。我不知道是什么问题。出现在那些希望帮助我的人面前,这里是项目的
github页面
:Terminal GUI on GitHub先谢谢您。curses,至少有3件事情要寻找:
SIGWINCH
(可能无法使用PDCurses)SIGWINCH
。如果您的程序从未收到KEY_RESIZE
(它没有检查...),那么该是时候为Python提交错误报告了,以解决此问题。KEY_RESIZE
不是read