图形用户界面程序也称为窗体应用程序,窗体应用程序是可以在用户计算机上运行的带用户界面的应用程序,不同于WEB应用程序,窗体应用程序不依赖于浏览器和网络,没有网络的窗体应用程序依然可以在用户计算机上运行,类似于APP应用程序。我们使用最多的窗体应用程序可能就是浏览器、QQ、WORD等窗体应用程序。
使用Python语言开发图形用户界面程序,可以有多种选择方式。Python自身提供了Tkinter GUI库,可以开发较为简单的窗体应用程序,Python的IDLE集成开发工具就是使用Tkinter GUI库开发的。wxPython可以开发较为复杂的窗体应用程序,它是一款开源软件,商业授权模式是LGPL,LGPL 允许商业软件通过类库引用方式使用wxPython GUI库,而不需要开放软件的源代码。pyQt同wxPython一样,也是开源软件,但它的商业授权模式是GPL,GPL授权模式要求只要程序使用了pyQt的GUI库,就需要开放程序的源代码。还有一些使用Python开发窗体应用程序的GUI库,这里就不多介绍了。
综合上面的考虑,本课采用wxPython GUI库来开发窗体应用程序。不管用哪个GUI库开发窗体应用程序,其原理和技术都是相通的,本课程关于窗体应用程序开发的内容同样也适用于其它GUI库。
wxPython是Python语言的扩展库,因此需要额外安装wxPython库,安装wxPython库非常简单,使用 Python的pip工具可以在线安装NumPy库。pip工具主要用于Python 包的查找、下载、安装、卸载的功能。pip工具主要是从Python Package 包管理库查找Python包,大多数流行的Python开源项目的作者都会将开源项目包上传到Python Package 包管理库中。
wxPython库安装步骤:
(1)启动Windows命令行窗口,在Windows命令行窗口输入命令:
pip install wxPython
(2)pip工具会自动下载wxPython包并安装,如下图所示:
wxPython安装完成后,就可以开始我们的wxPython旅行了。我们的第一个窗体应用程序就从“Hello World”开始,通过这个程序,你将知道如何使用wxPython,并建立一个窗体应用程序。
# 导入wxPython库 import wx # 创建应用对象 app = wx.App() # 创建一个窗体,标题为Hello World frm = wx.Frame(None, title="Hello World") # 显示窗体 frm.Show() # 进入事件循环 app.MainLoop()

图 1 Hello World窗体应用程序
wx.App类表示应用程序对象,每一个窗体应用程序对应一个App类的实例。App类引导wxPython初始化底层的GUI工具包,实现窗体应用程序主消息或事件循环,并将事件分派到窗口内的实例对象。
wx.Frame类表示窗体对象,一个窗体对象通常有边框和标题栏,可以选择是否包含菜单栏、工具栏和状态栏。窗体的尺寸和位置可以被用户改变。
MainLoop()是App类的一个方法,该方法让应用对象实例app进入消息循环。
wxPython类库的使用和指南可以在wxPython的官网上查阅,查阅地址是https://docs.wxpython.org/。