在python getstr()中刷新时刷新

问题描述:

我正在为使用curses模块的服务器应用程序编写前端。诅咒返回的主窗口分为2个子窗口。屏幕的上半部分从服务器打印输出,而最后一行用window.getstr()输入。有时当我输入文本时,上半部分正在更新,整个屏幕会随着随机字符替换现有字符而变得疯狂。有没有一个特定的原因,或者它是一个诅咒错误?在python getstr()中刷新时刷新

+0

我正在考虑实现这样的事情,但是失去了通过服务器输出回滚的能力是不可接受的。我想知道是否有办法在curses中保留这个功能... – 2014-11-17 04:49:22

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

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

+0

我觉得这是类似的东西,但不想重新分解它,如果我没有 – 2011-12-20 22:07:54