刷新时在python的getstr()中刷新

时间:2011-12-20 01:48:00

标签: python ncurses curses

我正在使用curses模块为服务器应用程序编写前端。由curses返回的主窗口分为2个子窗口。屏幕的上半部分打印服务器的输出,而底线则使用window.getstr()输入。有时当我输入文本并且上半部分正在更新时,整个屏幕变得疯狂,随机字符替换现有字符。是否有特定原因或是否是诅咒错误?

1 个答案:

答案 0 :(得分:4)

我猜你正在使用一个线程来更新上部显示,而window.getstr()在主线程中运行?

如果是这样,问题是curses终端状态是无法同时从两个不同线程更新的共享资源。您需要将终端置于非阻塞模式,使用window.getch()来构建输入字符串,并让您的线程将上层窗口更新任务传递给主线程。