6

当我less在我的 Mac 终端中使用该命令时,我会看到指定文件的 23 行切片。如果我向下移动文件,然后在终端窗口中向上滚动,我在当前切片之前看不到任何文件内容。相反,我看到了我在使用less.

我想使用这个或类似的效果来创建一个只显示当前屏幕,没有历史记录的 ascii 游戏界面。我会在屏幕上绘制我的框架并只更改这些框架中的文本或选项。这在大部分或完全在命令行环境中运行的旧系统中很常见。

是否有提供此功能的 Python 模块?这是我可以或应该自己实现的效果吗?

下面是一些可以从这种效果中受益的示例屏幕元素。

+-------------------------------------------------------------------+
|                                                                   |
| Dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog dialog dialog dialog dialog dialog    |
| dialog dialog dialog dialog.                                      |
|                                                                   |
|                                                                   |
|                                                                   |
+--------------------+---------------+------------------------------+
|   Attack           |     South     |            HP/Max   MP/Max   |
| > Cast Magic       |       -       |   Tom:    120/120   60/91    |
|   Use Item         |      New      | > Dick:    27/133   47/47    |
|   Tactics          |  Schwartzton  |   Harry:   87/104   16/113   |
+--------------------+---------------+------------------------------+
4

3 回答 3

7

我也一直在为这个问题而苦苦挣扎。我想要一个简单的跨平台解决方案,所以我扩展了 asciimatics以提供一组小部件来创建这样的基于表单的 UI。例如:

文本 UI 小部件

生成的代码应该非常简洁,并且可以在任何现代操作系统(包括 Windows、Linux 和 OSX)上运行,而无需安装额外的本机库。正如您从联系人列表示例中看到的那样,标准小部件易于布局,应该可以满足您的大部分需求。

于 2016-04-15T14:47:10.313 回答
6

我建议查看该curses模块。它是库的一个接口ncurses,正是用于此目的(我相信许多终端应用程序都是用它编写的)。文档相当不错,并且有几个不错的教程应该让您朝着正确的方向前进。

(无论是那个还是自由使用\r。)我强烈推荐这个curses模块,因为它应该为你想要做的事情提供更多的灵活性。

编辑:如果您对创建跨平台应用程序感兴趣,请记住该curses模块仅在 *nix 系统上可用。根据文档:

没有人制作过 curses 模块的 Windows 端口。

该教程推荐在 Windows 上使用这个库,尽管如果下载页面上的日期有任何迹象,那么它在相当长的时间内还没有更新。您可以查看这个模块,它看起来相当新。

于 2012-07-01T18:55:39.230 回答
3

你说的是curses。它是一个与 ncurses 接口的 Python 模块。我发现使用的最好的教程curses是这个: http: //www.dev-explorer.com/articles/python-with-curses

一些使用诅咒的流行程序(尽管来自另一种语言)是 aptitude 和 nano。

于 2012-07-01T18:58:22.533 回答