Col*_*ndz 5 python user-interface
我一直在尝试在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
Run Code Online (Sandbox Code Playgroud)
在翻译中它看起来像样:
+------------------------Hi! This is a text-based GUI!-------------------------+
+------------------------------------------------------------------------------+
| OPTIONS |
+------------------------------------------------------------------------------+
| 1 - Quit |
| |
| |
| |
| |
| |
| |
+------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
注意:我使用的是Windows XP
Pet*_*ain 13
这种文本UI需要的是一个终端库,它了解屏幕的基本布局和功能以及支持的输入设备.
在Linux(或OSX)上,广泛认可的标准是ncurses.Python提供了一个包装此本机库的模块.但是,这个(以及使用它的任何软件包 - 例如urwid)在Windows上的用途有限.
在您的情况下,您需要使用其他提供对本机Win32控制台API的访问权限的东西.这可能是cygwin,PDcurses的自定义安装,或类似的包pywin32.
或者,如果您真的不想担心所有操作系统特定的废话,您可以只安装asciimatics.这提供了一个跨平台的API,用于将文本放置在屏幕上的任何位置并处理键盘输入.此外,它提供了更高级别的小部件来创建文本UI,如下所示:
完全披露:是的 - 我是这个包的作者.
| 归档时间: |
|
| 查看次数: |
27603 次 |
| 最近记录: |