wxPython 入门

wxPython是一个Python的GUI库,详细参看:www.wxpython.org

wxPython基于wxWidgets,它是一个跨平台的、使用C++语言完成的UI库,详细但看:www.wxwidgets.org

wxPython不仅仅是对wxWidgets的封装,它还使用wxPython完成了部分组件的开发。

要想使用wxPython需要安装python和wxPython,相关安装方法请大家参看对应的文档,由于我使用的是Mac Leopard,这两个软件已经预先安装了,所以我就不需要在安装。

我使用的编辑器是TextMate,当让vi,emacs,jedit都可以,为了方便我使用了TextMate,非Mac用户可以使用vi,可能比TextMate还要强大。

第一个简单的wx应用程序

逐行解释

#!/usr/bin/env python

这被称为shebang,用来告诉python解析器的位置,如果这个文件被设定了执行权限,那么通过 % spare.py 可以直接执行这个文件。

"""Spare.py is a starting point for a wxPython program."""

这被称为这个模块的docstring,相当于这个模块的说明文档,方便其他开发人员阅读,可以使用如下的方式获得:

>>> import spare

>>> print spare.__doc__

Spare.py is a starting point for simple wxPython programs.

>>>

class Frame(wx.Frame):

pass

声明了wx.Frame的一个子类,该类表示了一个Frame。

这里的Frame比较简单,只是一个空白窗口,如果需要复杂的Frame,可以在这个类中完成。

class App(wx.App):

def OnInit(self):

self.frame = Frame(parent=None, title="Spare")

self.frame.Show()

self.SetTopWindow(self.frame)

return True

声明了一个wx.App的子类,实现了OnInit方法,这个方法会被wx自动调用,以此来显示我们的应用程序,其中的frame对象为上述我们自定义的Frame子类。SetTopWindow方法是一个可选方法,用来告诉wx应用程序那个Frame是主Frame。

if __name__ == '__main__':

这用来判断这个文件是作为应用程序直接执行的还是被引用的。

如果被引用,那么__name__变量的内容为文件的名字,可以使用如下的代码查看。

>>> import spare

>>> spare.__name__

'spare'

>>>

如果这个文件是被直接执行的,那么__name__变量的内容会是“__main__”
如果我们不做这个测试的话,根据python引用的特点,每次这个文件被引用,其中的两行代码都回被调用,这并不是我们期望的。

你可能感兴趣的:(UI,python,软件测试,emacs,wxPython)