GUI开发工具包
这些工具包较为突出的有: Tkinter、 PyQt 和 wxPython。 1. Tkinter 2. PyQt 3. wxPython
TKinter过于底层,PyQt过于庞大
wxPython 安装
1、 Windows 和 macOS 平台安装: pip install -U wxPython 其中 install 是按照软件包, -U 是将指定软件包升级到最新版本。 2、 Linux 平台下使用 pip 安装有点麻烦,例如在 Ubuntu 16.04 安装,打开终端输入 如下指令: pip install -U \ -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04 \ wxPython 3、下载 wxPython 帮助文档和案例。 https://extras.wxpython.org/wxPython4/extras
wxPython 基础
作为图形用户界面开发工具包 wxPython,主要提供了如下 GUI 内容: 1. 窗口。 2. 控件。 3. 事件处理。 4. 布局管理。
wxPython 类层次结构
第一个gui程序
语法一
# coding=utf-8 import wx # 创建应用程序对象 app = wx.App() # 创建窗口对象 frm = wx.Frame(None, title="第一个GUI程序!", size=(400, 300), pos=(100, 100)) # Frame类的源码 def __init__(self, parent=None, id=None, title=None, pos=None, size=None, style=None, name=None): frm.Show() # 显示窗口 app.MainLoop() # 进入主事件循环
语法二
import wx
# 自定义窗口类MyFrame
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(parent=None, title="第一个GUI程序!", size=(400, 300), pos=(100, 100))
# TODO
class App(wx.App):
def OnInit(self):
# 创建窗口对象
frame = MyFrame()
frame.Show()
return True
def OnExit(self):
print('应用程序退出')
return 0
if __name__ == '__main__':
app = App()
app.MainLoop() # 进入主事件循环
界面构建层次
import wx # 自定义窗口类MyFrame class MyFrame(wx.Frame): def __init__(self): super().__init__(parent=None, title="第一个GUI程序!", size=(400, 300)) self.Centre() # 设置窗口居中 panel = wx.Panel(parent=self) statictext = wx.StaticText(parent=panel, label='Hello World!', pos=(10, 10)) class App(wx.App): def OnInit(self): # 创建窗口对象 frame = MyFrame() frame.Show() return True if __name__ == '__main__': app = App() app.MainLoop() # 进入主事件循环