问题标签 [python-curses]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
188 浏览

python - 在另一个线程中同时打印某些内容时使用 Cmd

我正在尝试实现一个简单的命令行客户端,它接受来自服务器的消息并将它们打印到标准输出,而用户输入的命令被转换为服务器请求。现在它是用twisted和Cmd完成的:

这需要异步完成,因为服务器有时只是向客户端发送未经请求的数据。但是通过这种方式写入标准输出的文本MyClient.dataReceived与 Cmd 的控制台处理发生冲突,使其几乎无法使用。

我正在考虑通过使用某种控制台 UI 库(例如 Urwid 或 ncurses)将 MyCmd 和 MyClient 的输出放入屏幕的单独部分。

2009 年的这个帖子表明使用 Urwid 可能是不可能的:http: //lists.excess.org/pipermail/urwid/2009-July/000715.html

这个用 ncurses 完成的要点对我来说不太好用:https ://gist.github.com/interstar/3005137

以某种方式仍然可能吗?

0 投票
1 回答
904 浏览

python - 如果 Python Curses 窗口位于不同的线程上,则 getch 不会返回 KEY_RESIZE

当我自己运行此功能时,一切正常 - KEY_RESIZE 已发送,一切都很好。当我从线程内部调用 getch() 时出现问题 - 关键事件似乎工作正常(我没有彻底或广泛地测试过)但 KEY_RESIZE 从未发送过。

我做错了什么,或者有什么办法可以解决这个问题,以便无论线程如何都可以发送 KEY_RESIZE?

我已经尝试过在线程内外以及 Python 3.4.3 上的两个不同终端仿真器(gnome-terminal 和 konsole)上初始化屏幕。

打印发送到 stderr(重定向到另一个终端),因为 curses 倾向于破坏屏幕输出。我也没有在此代码中修复终端,因此您需要重置它以使其恢复正常。

0 投票
4 回答
2981 浏览

python-curses - 使用 npyscreen 在表单之间传递值

我正在尝试npyscreen在 python 中创建一个简单的 curses 应用程序,它请求用户在一个屏幕上输入,然后在另一个屏幕上为用户验证它。

大多数情况下,这是为了了解如何从内部存储和检索值npyscreen。我确定我遗漏了一些简单的东西,但我一直无法在文档中找到(或理解?)答案。

下面的示例代码将无法正确传递值:

0 投票
2 回答
553 浏览

python - 终端,每一行接一个+一些固定文本

我想同时拥有:

  • 就像在普通终端中一样,一行接一个地显示(Blah 12、Blah 13、Blah 14 等)

  • 固定位置信息(右侧):日期+固定文本“Bonjour”

几乎可以工作,直到〜Blah 250,当外观被破坏时!为什么?


(来源:gget.it

使用 ANSI 终端,如何同时拥有正常的终端行为(每个新行print)+ 固定位置显示?

注意:在 Windows 上,我使用 ansicon.exe 在 Windows cmd.exe 中获得 ANSI 支持。

0 投票
1 回答
129 浏览

python - 如何修复 python curses 中转换为参数 2 的错误?

我在 Unicurses 工作,这是一个用于 python 的跨平台诅咒模块。我试图将“@”字符放在控制台的中心。我的代码是这样的:

我一直收到错误

对于这一行:

有谁知道这个错误的原因并修复。谢谢!

0 投票
1 回答
287 浏览

python - window.delch() 用于虚拟屏幕

当我在curses、python中使用window.delch(y, x)时,删除会发生在屏幕上,而不是虚拟屏幕上,即即使我不调用window.refresh()也会删除字符. 为什么会这样,我将如何只删除虚拟屏幕上的角色?

0 投票
1 回答
1473 浏览

python - 防止诅咒使用 ctrl + c

每次我执行 CTRL + c 时,Curses 都会关闭我的程序,如何防止这种情况发生?我尝试禁用键盘,进入 raw 和 noraw 模式,但它一直在发生。

0 投票
0 回答
1153 浏览

python-3.x - 取消按键保持第一个符号后的延迟

当我按住一个键时,输入第一个符号,然后有一点延迟,然后快速输入其他符号。像这样的东西:

在此处输入图像描述

在终端中也会发生同样的情况。在 linux 控制台 (tty) 中也会发生同样的情况,即使该延迟较小。

我正在使用 Python 开发一个控制台应用程序,它使用curses,它处理箭头键的按下,并且这种延迟也存在。

我想摆脱这种延迟,这样当我按住一个键时 - 它会统一发送信号,在第一个(或任何一个)符号之后没有任何特定的延迟。

我该怎么做?我应该使用来自阿森纳的东西curses吗?或者修补一些系统范围的设置?

EDIT1:我想我找到了一种方法。我可以进入键盘设置并设置自动重复的延迟。但它会在全局范围内更改它,并且仅适用于我的图形界面。它不会改变 linux 控制台中的任何内容。因此,我也在寻找一种在控制台中执行此操作的方法,因此它只会影响我的应用程序,而不影响整个系统。

EDIT2:在 X http://linuxforcynics.com/how-to/set-keyboard-repeat-delay-and-rate中找到了一种全局的命令行方式

和 linux 控制台的一种方式:https ://unix.stackexchange.com/questions/58651/adjusting-keyboard-sensitivity-in-a-command-line-terminal

但仍在寻找仅限应用程序的方式。

0 投票
5 回答
51914 浏览

python - ImportError:尝试导入祝福时没有名为“_curses”的模块

我正在尝试运行这个:

这是这里的第一个例子:https ://pypi.python.org/pypi/blessings 。

但是,我收到此错误:

我的系统是win10 x64。

0 投票
3 回答
2614 浏览

python - Python 诅咒:让输入键终止文本框?

我有一个应用程序,要求人们输入他们的用户名和密码。我希望他们能够按回车键发送名称和密码。为此,我做了这个:

不幸的是,这并没有按预期工作。终止的标准字符(由 CTRL+G 触发)是 7,输入字符是 10,但是使用上面的代码,所有其他键仍然可以正确处理,但是当我按 enter 时,它只是给我一个换行符,而不是终止文本框的编辑模式。我究竟做错了什么?