刷新时在python getstr()中诅咒

刷新时在python getstr()中诅咒,python,ncurses,curses,Python,Ncurses,Curses,我正在使用curses模块为服务器应用程序编写前端。curses返回的主窗口分为两个子窗口。屏幕的上半部分打印服务器的输出,而底线使用window.getstr()获取输入。有时,当我输入文本时,上半部分正在更新,整个屏幕会因为随机字符替换现有字符而变得疯狂。这是一个特定的原因还是一个curses bug?我猜您在主线程中运行window.getstr()时使用了一个线程来更新上面的显示 如果是这样,问题是curses终端状态是一个共享资源,不能从两个不同的线程同时更新。您需要将终端置于非阻塞模

我正在使用curses模块为服务器应用程序编写前端。curses返回的主窗口分为两个子窗口。屏幕的上半部分打印服务器的输出,而底线使用window.getstr()获取输入。有时,当我输入文本时,上半部分正在更新,整个屏幕会因为随机字符替换现有字符而变得疯狂。这是一个特定的原因还是一个curses bug?

我猜您在主线程中运行window.getstr()时使用了一个线程来更新上面的显示


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

我认为是这样的,但如果我没有tI正在考虑实现这样的任务,我不想重新考虑它,但是失去在服务器输出中向后滚动的能力是不可接受的。我想知道是否有办法在诅咒中保留这种功能。。。