我一直试图在Python2.7中创建自己的基于文本的UI,但是我想到了一个关于输入的想法。所以我就这样想:input = raw_input("|" + "input: ".center(78) + "|")
,但粗略地说,光标离右边很远(只是在我输入:P之前意识到它不起作用)。所以,问题是,我如何把一个输入放在屏幕中间,文本放在同一行上(两边),并在我写下“in put:”后使用光标类型?如果你想知道,我用这个:
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
也可以尝试在} 之上构建有用的。有了它,你可以做丰富多彩的界面。按钮,编辑字段,甚至状态栏和进度栏以及您所需要的一切。要开始工作,您只需要安装Python
curses
高级框架^{curses
,并使用带有其源文件的urwid
文件夹(您可以将整个urwid
库与应用程序作为独立的捆绑包一起传输!)。它甚至可以在Windows XP/7下的cygwin
下工作,我们知道,这里没有Python
的curses
端口。urwid
portfolio不再是低级的,有时非常无聊的
curses
:)这种文本UI需要的是一个终端库,它能够理解屏幕和支持的输入设备的基本布局和功能。
在Linux(或OSX)上,公认的标准是
ncurses
。Python提供了一个module来包装这个本机库。但是,这个(以及任何使用这个-例如urwid
的包)在Windows上的使用是有限的。在您的情况下,您需要使用其他提供对本机Win32控制台API的访问的工具。它可以是cygwin、PDcurses的自定义安装,也可以是类似于
pywin32
的包。或者,如果你真的不想担心那些操作系统特有的废话,你可以直接安装asciimatics。这提供了一个cross-platform API来将文本放在屏幕上的任何位置并处理键盘输入。此外,它还提供更高级别的widgets来创建这样的文本ui:
完全披露:是的-我是这个包裹的作者。
对于这类任务,
input()
函数几乎不复杂。最好使用能够控制Unix终端的库,比如^{} library 。这个库本质上允许您构建一个简单的终端GUI。
如果你需要更多,也可以看看Urwid。Urwid为有眼光的终端GUI开发人员提供了更复杂的GUI小部件。
不幸的是,您不能在Windows上使用} 等端口,或者可以尝试^{} module (后者以类似的方式驱动Windows CMD控制台)。
curses
模块;显然有DOS和OS/2端口,但它主要是一个仅限POSIX的库。在Windows上,您必须使用^{相关问题 更多 >
编程相关推荐