【问题标题】:curses in python getstr() while refreshing刷新时python getstr()中的诅咒
【发布时间】:2012-01-24 02:06:26
【问题描述】:

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

【问题讨论】:

  • 我正在考虑实现这样的东西,但是失去回滚服务器输出的能力是不可接受的。我想知道是否有办法在 curses 中保留该功能......

标签: python ncurses curses


【解决方案1】:

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

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

【讨论】:

  • 我认为它是这样的,但如果我没有 t,我不想重新考虑它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 2012-03-28
  • 2012-04-08
  • 1970-01-01
  • 2019-05-18
  • 2013-11-22
相关资源
最近更新 更多