这篇文章是关于 wxPython,但 wxPython 实际是两件事物的组合体:Python 脚本语言和 GUI 功能的 wxWindows 库(关于 wxWindows 的介绍,请参阅 developerWorks上的 “细述 wxWindows” )。wxWindows 库是为了最大可移植性的 C/C++ 库,而抽取 GUI 功能。所以 wxWindows 应用程序与生俱来地可以运行在 Windows、带 X、KDE 或 Gnome 的 UNIX 或者 wxWindows 已移植到的平台上(很不幸,还不包括 Macintosh)。当然 Python, 作为脚本引擎,具有很强的移植性( 可以 运行在 Macintosh 上,但如果您想要编写桌面 GUI 代码,它是不行的)。把 wxWindows 与 Python 脚本语言组合起来,意味着:wxPython 应用程序不仅快速和易于编写,而且可以在不作任何更改情况下,运行在 Windows 或 UNIX 环境下。
您可能想,“但是那也是我有 Java 的原因,Java 也是可移植的。”没错,如果您曾试过在 Windows 上安装 Java 应用程序,您就可能认识到完全不是这么回事。Java 虚拟机是 大的 ,它并不总是以您所想的方式工作,最糟糕的是,恕我直言,Java 窗口不是真正意义上的窗口,所以 Java 虚拟机与主机系统之间的交互总是有点力不从心。
另一方面,Python 占有相对小的空间。wxPython 库的窗口是真正实在的本地窗口,它可以做本地窗口能做的任何事情,使您的 wxPython 程序如同窗口的程序一样。wxPython 的全部家当可以打包成一个易于安装的软件包。也许我是一个固执的人,但我发现做同样的事情,wxPython 要比 Java 容易得多。
但是您可能没有听说过桌面上的 Python,它是服务器端编程社区的一员,作为脚本语言这一块的新生儿(特别是与应用程序服务器框架连接,如 Zope)。现在人们正赶上 Python 的热潮。Python 的好处在于,不象其它脚本语言,它从一开始就是面向对象的语言。所以您不会忽视 Java 由于喜爱 Python 而失去品尝 OO 好处。
世界上最小的 wxPython 程序,剖析!
听起来很酷,不是吗?让我们看一些代码,您将会明白我所说的。为了易于讨论,我在示例中插入了一些行标签。它们不是代码中的一部分;这就是为什么它们以 蓝色斜体 表示。
清单 1. 一段很小的代码样本
|
我们一行行地看,这样容易明白该代码的工作原理。这就是为什么它是世界上最小的 wxPython 程序(我已经把所有无关的细节剔除了)。这段代码只能创建了一带有一个编辑字段的窗口。您可以在这个字段中编辑,但很明显没有办法保存。该应用程序看上去就象在 Windows 下一样(我在里面输入了一些东西):
让我们查看代码
第一行和第二行是很重要的,在后面会需要它们。事实上,在这个示例中, 不 需要 sys 和 os ,但由于几乎每个程序都要用到,所以先把它们放进这段代码,在后面会针对它们提一些问题。第二行比较有趣,导入 wxPython 的 wx 库。当然,wx 库(基本 wxPython 声明)包括基本类,如框架和应用程序。
/注意这些行的结尾没有分号。如果您编写过 Perl 程序,那您要花费一点功夫来熟悉 Python 的输入习惯。但等等,它对您来说是陌生的。
在第三行,定义了第

