如何用Python Urwid制作聊天界面?
我已经可以用gevent和zeromq实现聊天程序了,但我想给它们做一个控制台界面。
我第一次尝试用ncurses失败了,于是我试了试Urwid,发现项目nigiri正好实现了我想要的效果:
我研究了源代码,但因为对控制台界面编程不太熟悉,我没能找到生成这个效果的部分(尤其是它用了多个标签),我想我得研究一下连接信号。
有没有人能提供一个可以做到这个的代码片段?
我不需要整个程序,我可以自己处理通信、守护进程、选项和其他所有的事情。
我只需要一些基本的东西来设置界面,底部输入一些文本,并且异步通知顶部面板添加一些文本,同时不阻塞底部的输出。
谢谢!
1 个回答
4
在计算机领域,如果你不够聪明,那就得有耐心。我在编程时用上了老办法,使用了try/except这个关键词:
- 先从源代码中去掉那些和我想做的功能无关的部分
- 如果没问题,就重复第一步,直到只剩下必要的代码
- 如果程序崩溃了,就弄明白崩溃的那部分代码为什么重要,然后用适合我需求的代码替换掉它,再回到第二步
我把nigiri的源代码简化到只剩下一个文件。
现在它能正常工作了。接下来我得想办法让urwid和zeromq的主循环能够和谐地一起工作。