我一直在尝试在 python 2.7 中制作自己的基于文本的 UI,但我想到了一个关于输入的想法。所以我想到了这样的事情:input = raw_input("|" + "input: ".center(78) + "|")
,但粗略地说,光标在右侧很远(在我输入它之前才意识到它不起作用:P)。所以,问题是,如何将输入放在屏幕中间,文本在同一行(两侧),并在写“输入:”后输入光标?如果你想知道,我正在使用这个:
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 XP
这种文本 UI 需要一个终端库,该库了解屏幕的基本布局和功能以及支持的输入设备。
在 Linux(或 OSX)上,广泛认可的标准是ncurses
。 Python 提供了一个module包装这个本机库。然而,这个(以及任何使用它的包 - 例如urwid
)在 Windows 上的用途有限。
对于您的情况,您需要使用其他东西来提供对本机 Win32 控制台 API 的访问。这可以是 cygwin(PDcurses 的自定义安装),也可以是类似的包pywin32
.
或者,如果您真的不想担心所有操作系统特定的废话,您可以安装数学。这提供了一个跨平台API将文本放置在屏幕上的任意位置并处理键盘输入。此外,它还提供更高级别的widgets创建如下文本 UI:
完全披露:是的 - 我是这个包的作者。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)