我一直试图在python2.7中创建基于文本的自己的UI,但是我想到了一个关于输入的想法。因此,我想到了这样的东西:input = raw_input("|" + "input: ".center(78) + "|"),但粗略地说,光标在右边很远(在我输入:P之前,就意识到它是行不通的)。因此,问题是,如何将文本放在屏幕的中间(两边),并在我编写" input:“之后输入光标?如果你想知道,我用这个:
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在翻译里,它看起来很不错:
+------------------------Hi! This is a text-based GUI!-------------------------+
+------------------------------------------------------------------------------+
| OPTIONS |
+------------------------------------------------------------------------------+
| 1 - Quit |
| |
| |
| |
| |
| |
| |
+------------------------------------------------------------------------------+注意:我使用Windows
发布于 2013-08-11 22:49:34
还可以尝试构建在curses高级框架urwid之上的实用工具。有了这个东西,你就可以做丰富多彩的界面了。按钮,编辑字段,甚至状态栏和进度条和所有你需要的。要开始工作,您只需要安装Python和带有源代码的curses文件夹(您可以使用应用程序作为独立的包传输整个urwid库!)。它甚至可以在Windows /7下的cygwin下工作,我们知道,这里没有用于Python的curses端口。
urwid 投资组合
没有更低层次的,有时非常无聊的curses :)
发布于 2016-06-03 23:00:20
对于这种文本UI,您需要的是一个终端库,它了解屏幕的基本布局和功能以及支持的输入设备。
在Linux (或OSX)上,得到广泛认可的标准是ncurses。Python提供了一个模块来包装这个本机库。然而,这(以及任何使用此功能的包--例如urwid)在Windows上的应用有限。
在您的示例中,您需要使用其他提供对本机Win32控制台API的访问的工具。这要么是cygwin,PDcurses的自定义安装,要么是像pywin32这样的包。
或者,如果你真的不想担心所有的操作系统特定的废话,你可以只安装腹水学。这提供了一个跨平台API,可以将文本放置在屏幕上的任何位置,并处理键盘输入。此外,它还提供了更高级别的窗口小部件来创建这样的文本UI:

完全披露:是的-我是这个包的作者。
发布于 2019-12-06 04:19:07
在最初问题提出几年后又增加了另一个选项。根据“皮科图”的作者
Picotui是Python3的文本用户界面(TUI)小部件库。众所周知,它可以使用CPython3和Pycopy (Unix版本正式支持后者),但是应该使用任何允许访问stdin/stdout文件描述符的Python3实现。
作者还对PicoTUI与Urwid进行了比较。一些有趣的观点。我希望在我想要开始的项目中使用PicoTUI。不可否认,没有第一手的经验。在为我的TUI (基于文本的UI或基于终端的UI,很大程度上是GUI )的Python库寻找答案时,遇到了这个问题,所以考虑添加这个选项。
https://stackoverflow.com/questions/18177142
复制相似问题