| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
某一类 Python应用程序最好使用交互式用户界面,这样可以消除图形环境的系统开销或复杂性。交互式文本模式程序(在Linux/UNIX 中),例如封装在 Python 的标准 curses模块中的 ncurses 库,正是您所需要的。本文中,DavidMertz 讨论了在 Python 中 curses 的用法。他使用从前端到 Txt2Html程序的样本源代码阐述了 curses 环境。
网管bitscn_com
curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法。curses 是大多数类似于 UNIX 的系统(包括 Linux)的标准部分,而且它已经移植到 Windows 和其它系统。curses 程序将在纯文本系统上、xterm 和其它窗口化控制台会话中运行,这使这些应用程序具有良好的可移植性。
网管下载dl.bitscn.com
介绍 curses 网管bitscn_com
Python 的标准 curses 提供了“玻璃电传”(glass teletype)(在 20 世纪 70 年代,原始 curses 库刚创建时,它叫做 CRT)的公共特性的基本接口。有许多方法可以让用 Python 编写的交互式文本模式程序变得更巧妙。这些方法分成两类。 网管u家u.bitsCN.com
一方面,有些Python 模块支持 ncurses (curses 的超集)或 slang (相似却独立的控制台库)的全部功能集合。最值得注意的是,这当中有一个增强库(由适当的 Python 模块封装)可以让您将颜色添加到界面上。 网管论坛bbs_bitsCN_com
另一方面,许多构建在curses(或 ncurses / slang )上的高级窗口小部件库添加了诸如按钮、菜单、滚动栏和各种公共界面设备之类的特性。如果您看到过用诸如 Borland's TurboWindows(DOS 版)之类的库开发的应用程序,您就知道在文本模式控制台中,这些特性是多么吸引人。窗口小部件库中的功能单单使用 curses 都可以达到,但是还可以利用其它程序员在高级界面上取得的成果。请参阅 参考资料,以寻找所提到的模块的链接。
网管u家u.bitsCN.com
本文只涉及 curses 自身的特性。由于 curses 模块是标准发行版的一部分,您不必下载支持库或其它 Python 模块就可以找到并使用它(至少在 Linux 或 UNIX 系统中是这样)。理解 curses 提供的基本支持很有用,即使只是作为理解高级模块的基础。即使不使用其它模块,单独使用 curses 构建漂亮且实用的 Python 文本模式应用程序也很简单。预先发行的说明提到 Python 2.0 将包括 curses 的增强版本,但不管怎样,它应该兼容此处说明的版本。
应用程序
我将讨论为 Txt2Html(在 “可爱的 Python:我的第一个基于 Web 的过滤代理” 中介绍的文本到 HTML 转换程序)编写的封装器,作为本文的测试应用程序。Txt2Html 有几种运行方式。但为了与本文的目的保持一致,我们将研究从命令行运行的 Txt2Html.操作 Txt2Html 的一种方式是向它提供一组命令行变量(它们说明要执行的转换的各方面),然后将应用程序当作批处理运行。对于偶尔使用的用户,一个更友好的用户界面提供了一个交互式选择屏幕,它可以在执行实际转换之前,引导用户遍历转换选项(提供选中选项的视觉反馈)。
curses_txt2html 的界面基于常见的顶栏菜单,它带有下拉和嵌套子菜单。所有菜单相关的功能都在 curses 上“从头”开始设计。虽然这些菜单缺少更复杂的 curses 封装器的一些特性,但它们的基本功能是由几行只使用 curses 的代码实现的。这个界面还带有一个简单的卷动帮助框和几个用户输入字段。以下是显示常规布局和样式的应用程序的屏幕快照。 网管联盟bitsCN_com
X终端上的应用程序
网管u家u.bitsCN.com
网管联盟bitsCN@com
Linux终端上的应用程序
中国网管联盟bitsCN.com
网管u家u.bitscn@com
网管bitscn_com
|
0
|
评论加载中…