首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Python文本的GUI (TUI)中的输入

基于Python文本的GUI (TUI)中的输入
EN

Stack Overflow用户
提问于 2013-08-11 22:01:41
回答 6查看 37.2K关注 0票数 9

我一直试图在python2.7中创建基于文本的自己的UI,但是我想到了一个关于输入的想法。因此,我想到了这样的东西:input = raw_input("|" + "input: ".center(78) + "|"),但粗略地说,光标在右边很远(在我输入:P之前,就意识到它是行不通的)。因此,问题是,如何将文本放在屏幕的中间(两边),并在我编写" input:“之后输入光标?如果你想知道,我用这个:

代码语言:javascript
复制
if True:
    print c + "Hi! This is a text-based GUI!".center(78, h) + c
    print c + "-" * 78 + c
    print v + "OPTIONS".center(78) + v
    print c + "-" * 78 + c
    print v + "1 - Quit".center(78) + v
    for i in range(1, 7):
        print v + " " * 78 + v
    print c + "-" * 78 + c

在翻译里,它看起来很不错:

代码语言:javascript
复制
+------------------------Hi! This is a text-based GUI!-------------------------+
+------------------------------------------------------------------------------+
|                                   OPTIONS                                    |
+------------------------------------------------------------------------------+
|                                   1 - Quit                                   |
|                                                                              |
|                                                                              |
|                                                                              |
|                                                                              |
|                                                                              |
|                                                                              |
+------------------------------------------------------------------------------+

注意:我使用Windows

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-08-11 22:49:34

还可以尝试构建在curses高级框架urwid之上的实用工具。有了这个东西,你就可以做丰富多彩的界面了。按钮,编辑字段,甚至状态栏和进度条和所有你需要的。要开始工作,您只需要安装Python和带有源代码的curses文件夹(您可以使用应用程序作为独立的包传输整个urwid库!)。它甚至可以在Windows /7下的cygwin下工作,我们知道,这里没有用于Pythoncurses端口。

urwid 投资组合

没有更低层次的,有时非常无聊的curses :)

票数 7
EN

Stack Overflow用户

发布于 2016-06-03 23:00:20

对于这种文本UI,您需要的是一个终端库,它了解屏幕的基本布局和功能以及支持的输入设备。

在Linux (或OSX)上,得到广泛认可的标准是ncurses。Python提供了一个模块来包装这个本机库。然而,这(以及任何使用此功能的包--例如urwid)在Windows上的应用有限。

在您的示例中,您需要使用其他提供对本机Win32控制台API的访问的工具。这要么是cygwin,PDcurses的自定义安装,要么是像pywin32这样的包。

或者,如果你真的不想担心所有的操作系统特定的废话,你可以只安装腹水学。这提供了一个跨平台API,可以将文本放置在屏幕上的任何位置,并处理键盘输入。此外,它还提供了更高级别的窗口小部件来创建这样的文本UI:

完全披露:是的-我是这个包的作者。

票数 17
EN

Stack Overflow用户

发布于 2019-12-06 04:19:07

在最初问题提出几年后又增加了另一个选项。根据“皮科图”的作者

Picotui是Python3的文本用户界面(TUI)小部件库。众所周知,它可以使用CPython3和Pycopy (Unix版本正式支持后者),但是应该使用任何允许访问stdin/stdout文件描述符的Python3实现。

作者还对PicoTUI与Urwid进行了比较。一些有趣的观点。我希望在我想要开始的项目中使用PicoTUI。不可否认,没有第一手的经验。在为我的TUI (基于文本的UI或基于终端的UI,很大程度上是GUI )的Python库寻找答案时,遇到了这个问题,所以考虑添加这个选项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18177142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档