推荐使用: wxPython
一. 安装wxPython
二. 第一个wxPython程序
展示
代码
# coding: utf-8
import wx
# 创建应用程序对象
app = wx.App()
# 创建窗口对象
frame = wx.Frame(None, title="Hello World", size=(300, 200), pos=(100, 100))
# 显示窗口
frame.Show()
# 进入主事件循环
app.MainLoop()
三. 自定义窗口类
# coding: utf-8
import wx
class MyFrame(wx.Frame):
def __init__(self, title):
super().__init__(None, title=title, size=(300, 200), pos=(500, 500))
# 创建应用程序对象
app = wx.App()
# 创建窗口对象
# frame = wx.Frame(None, title="Hello World", size=(300, 200), pos=(100, 100))
frame = MyFrame("Hello World")
# 显示窗口
frame.Show()
# 进入主事件循环
app.MainLoop()
四. 在窗口中添加控件
# coding: utf-8
import wx
class MyFrame(wx.Frame):
def __init__(self, title):
super().__init__(None, title=title, size=(300, 200), pos=(500, 500))
panel = wx.Panel(parent=self)
staticText = wx.StaticText(parent=panel, label="Hello World", pos=(100, 100))
# 创建应用程序对象
app = wx.App()
# 创建窗口对象
# frame = wx.Frame(None, title="Hello World", size=(300, 200), pos=(100, 100))
frame = MyFrame("Hello World")
# 显示窗口
frame.Show()
# 进入主事件循环
app.MainLoop()
五. 事件处理
# coding: utf-8
import wx
import random
class MyFrame(wx.Frame):
def __init__(self, title):
super().__init__(None, title=title, size=(800, 600), pos=(500, 500))
panel = wx.Panel(self)
self.staticText = wx.StaticText(panel, label="Hello World", pos=(100, 100))
b = wx.Button(panel, label="ok", pos=(100, 150), size=(100, 50))
self.Bind(wx.EVT_BUTTON, self.On_Click, b)
def On_Click(self, event):
# 获取随机数
random_num = random.randint(1, 100)
self.staticText.SetLabel("点我点我" + str(random_num))
# 创建应用程序对象
app = wx.App()
# 创建窗口对象
# frame = wx.Frame(None, title="Hello World", size=(300, 200), pos=(100, 100))
frame = MyFrame("Hello World")
# 显示窗口
frame.Show()
# 进入主事件循环
app.MainLoop()
六. 布局管理
1. 盒子布局管理器
1.1 创建盒子布局管理器对象
1.2 添加子窗口(或控件)到父窗口
七. 重构事件处理示例