图形用户界面,即 GUI(Graphical User Interface)。这种编程技术是非常重要的。Python 可以开发一些传统桌面应用,这一方面的工具包自然是有不少的。其中,除了内置的 Tkinter 和第三方库 PyQt 等库外, wxPython 因为其丰富的控件及完善的帮助文档,成为了 Python 的该领域中一个非常不错的选择。
安装 wxPythonwxPython 的安装非常方便,直接用 pip 安装即可。
pip install wxPython
如果安装过程中出现问题,可以参见 wxPython ,即官方提供的教程。
安装完 wxPython 工具包,就可以开始学习了。wxPython 作为一个 GUI 开发包,主要有一下四种内容:
- 窗口;
- 控件;
- 事件处理;
- 布局管理。
这四种不同的内容分别对应着不同的根类:
- wx.Window
- wx.Control
- wx.EvtHandler
- wx.Sizer
一般来说,为了使代码清晰并让窗口有较为完整的功能,一般都会通过定义 Frame 类的子类来实现。但该示例仅要展示一个窗口的实现的几个必备步骤,暂使用极为简单的代码创建出一个窗口,而不向其加入控件以及其他元素。代码如下。
# wxPython1.py
from wx import *
myApp = App()
myFrame = Frame(None, title="第一个wxPython程序", size=(200, 150), pos=(300, 225))
myFrame.Show()
myApp.MainLoop()
至此,第一个 wxPython 程序就大功告成了。如果一切正常的话,将会看到如下一个窗口:
很明显,这个程序仅有标题和灰色的背景。这个程序还是过于简单了。那么这个程序大致分为如下几步:
- 创建 myApp App 对象;
- 创建 myFrame Frame 对象;
- 显示 myFrame;
- myApp 进入主事件循环。
其中,只有 Frame 创建时的几个参数值得说明一下。
第一个参数 None ,是该窗口的父窗口 parent ,在有些情况下是可以设置的,不过一般来说,作为简单的程序,这个参数往往都是 None 。
第二个参数 title ,显然是设置窗口标题的。
第三、四个参数 size 和 pos ,分别设置了窗口的大小及位置。这两个参数都是元组类型,第一项为横向的参数,第二项为纵向的参数。需要注意的是,这里的位置 pos 在后续的应用中往往被省去,而用其他的方法代替。
至此,根据上文的说明,写一个 GUI 程序的流程大致如此。利用同样的原理及参数,可以将以上程序改为一个完整的 wxPython 制作的小程序了。
# wxPython1.py
from wx import *
# myApp = App()
# myFrame = Frame(None, title="第一个wxPython程序", size=(600, 400), pos=(300, 225))
#
# myFrame.Show()
# myApp.MainLoop()
class MyFrame(Frame):
def __init__(self):
super(MyFrame, self).__init__(None, title="第一个wxPython程序", size=(600, 400), pos=(300, 225))
class MyApp(App):
def OnInit(self):
frame = MyFrame()
frame.Show()
return True
def OnExit(self):
print("程序结束")
return 0
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
这个程序流程与之前的基本一样,运行结果也没有不同,只在判断主模块这里,一般在 GUI 程序的主模块中总是习惯于加入这一段。当然,如果整个程序只包含一个文件时完全可以去掉这点。
具体对于完善后的程序还有一些出入,在下篇文章中将会讲解。这篇教程就到此为止了,再见!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)