问题标签 [urwid]

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 投票
1 回答
1623 浏览

python - urwid - 无限循环的输出屏幕

我正在尝试为无限循环制作一个简单的 urwid 输出屏幕。它需要输出来自另一个类的数据。

我现在找到的解决方案是:有一个带有队列属性的打印机类(实际输出类的测试替换器)。当它需要显示某些东西时,它会将其附加到queue。然后,有一个 Interface 类 - 实际的接口 - 具有自己的 Printer 实例。与 MainLoop 并行运行的线程检查队列是否有项目,如果有,则输出它们。由于打印机的主函数是一个无限循环,它也有自己的线程——在这个测试中,它只是每隔几秒输出一次“Hello”。

这是代码:

它有效,但对我来说似乎太乱了,我担心它最终可能会成为某种编码恐怖。有没有更简单的方法来完成任务?

0 投票
1 回答
303 浏览

python - urwid 中的斜体文本

我正在使用urwid 来设计一个curses ui。我可以使用显示属性来显示粗体、下划线或突出显示的文本。可以使用斜体吗?

0 投票
1 回答
338 浏览

python - urwid watch_file 阻止按键

我有以下 urwid 程序,它显示按下的键,或来自 Popen'd 程序的任何行:

上面的程序可以工作,但是如果我将 Popen'd 命令更改为ssh localhost ...版本,程序将停止显示按键,直到ssh localhost ...命令完成。这是为什么?

环境:CentOS 6.6,Python 2.7.4,urwid 1.3.1-dev。

0 投票
0 回答
227 浏览

python - 如何更改urwid上的ui

我正在创建一个urwid供我使用的小应用程序,结构是 aFillerPile几个Text字段组成,然后是 a Divider, an Edit, anotherDivier最后是 aText

现在,我想更换Text1 .. Text3用其他Text字段替换,这些字段的确切数量各不相同。我想我应该重绘整个 UI,但我没有得到回应draw_screen()

我的课:

welcom()函数生成上述字段,并且options包含dict我需要的信息

我像这样运行循环

如何更新我的用户界面?

0 投票
0 回答
190 浏览

python - mac os x urwid AttributeError:“SelectableIcon”对象没有属性“_SelectableIcon__super”

我对python an urwid 很陌生。我发现 urwid 1.3.0 似乎存在 OS X 特定问题:我运行 Mac OS X 10.9.5,默认安装了 python 2.7.5 和手动安装的 python 3.4.2。我没有对原始代码进行任何更改并尝试了以下操作:

我按照指示(https://github.com/wardi/urwid/wiki/Installation-instructions)将包(urwid-1.3.0.tar.gz)中的urwid文件夹复制到其示例文件夹中,以使urwid可用于python并能够测试示例。执行时我总是遇到同样的错误,例如:

我还尝试了 urwid 网站的第一个教程

所有示例,就像上面的简短示例一样,都会产生以下错误:

当我在 Raspberry Pi 上的新 Raspbian (Debian) 上尝试此错误时,不会发生此错误。所以在我看来这是一个操作系统特定的问题。

有人能找到为什么在 OS X 上会发生这种行为,或者它甚至会在其他系统上发生吗?有人知道如何解决这个问题吗?

提前致谢

0 投票
1 回答
1268 浏览

python - Python TUI 后端有哪些选项?

我需要为我正在处理的项目构建一个 python TUI。我不需要关于实际 TUI 库(如 ncurses/npyscreen/Urwid/等)的建议,因为我的团队已经确定它们对于我们的需求来说太重了。TUI 采用相对简单的文本输入,不需要所有漂亮的格式和小部件。它也只会在任何时候接受来自单个用户的输入。

由于我们正在滚动自己的显示,这就留下了真正的问题,即有哪些库选项可以帮助实现我可以重用的事件处理/IO 循环?我开始在 Internet 上搜索 GUI/TUI 后端,并很快发现自己置身于 Twisted/Tornado/Gevent 世界,我也不确定这是否是正确的途径。这些库,或者 Urwid 是否能够让我轻松插入自己的显示代码(渲染屏幕并获取简单的raw_input()样式数据)?

这只能在 Python 2.7、Linux 环境中运行,但如果它可以在 Mac 上运行,那将是一大优势。

0 投票
3 回答
12751 浏览

python - Python ABC Multiple Inheritance

I think the code will explain the problem better than I can do with words. Here is the code in my_abc.py:

Here is the code in my_class.py

When I try to run my_class.py I get:

TypeError: Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

I understand that I can create a class the inherits directly from my interface MyABC, and then create another class which then inherits from both this class which I created and my third party module class.

My question is: Is there another better and proper way of doing this directly without having to create an intermediate class for my purpose?

0 投票
0 回答
160 浏览

bash - 构建基于文本的数据输入应用程序的最佳方法

我正在尝试编写一个仅使用终端的脚本,但我不知道我的期望有多现实。这是我想让我的生活更轻松的数据输入。我想要看起来像这样的东西:

基本上是一个包含 20-30 人列表的屏幕,带有文本输入框和复选框。我希望能够上下箭头并四处移动。我记得很早以前就使用过基于文本的程序,而且它们看起来仍然更有效率。

我一直在研究 ncurses、urwid、直接 bash ......我想我可以让这些工作中的任何一个工作,但如果有人对可以使这更容易的语言或框架有建议,我肯定会很感激。我不想花一两个星期的时间,然后意识到我可以在一小时内以另一种方式完成它。

0 投票
1 回答
439 浏览

python - Python Urwid 的 set_alarm 问题

我在使用库 urwid 时遇到了 set_alarm 问题。基本上,当您运行它并在 Chapman 上按 Enter 时,您将收到以下错误。我对 urwid 了解不多,而且它似乎缺乏文档,我试图寻找示例进行比较,但找不到任何示例。

开始 = 数据() start.mainish()

这是错误

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

以某种方式仍然可能吗?