创建一个简单的wxPython程序
import wx app = wx.App() # 创建应用程序对象 frame = wx.Frame(None, title = "Hello, World!") #创建一个框架 frame.Show(True) # 显示窗口 app.MainLoop() # 进入事件循化
运行结果如下所示:
利用我们之前讲的面向对象的方法,可以对这个代码进行修改,修改之后的代码如下所示:
import wx
class MyApp(wx.App): # 从App类里生子类
def OnInit(self): # 定义初始化方法
frame = wx.Frame(None, title="Hello, World!") # 创建一个框架
frame.Show() # 显示窗口
return True
if __name__ == '__main__':
app = MyApp() # 执行初始化方法
app.MainLoop()
组件
- 组件容器(Containers)——用于容纳其他组件 – 例:wx.Panel等
- 动态组件(Dynamic Widgets)——可以被用户编辑 – 例:wx.Button、wx.TextCtrl、wx.ListBox等
- 静态组件(Static Widgets)——显示信息用,不能被用户编辑 – 例:wx.StaticBitmap、wx.StaticText、wxStaticLine等
- 其他组件 – 例:wx.ToolBar、wx.MenuBar、wx.StatusBar
具体的使用方法,如下所示:
import wx
class Frame1(wx.Frame):
def __init__(self, superior): # 修改了原来Frame子类的__init__()方法
wx.Frame.__init__(self, parent=superior, title="一个可以输入的文本框", pos=(100, 200), size=(350, 200))
# 进行窗口标题、位置、大小的设置
panel = wx.Panel(self) # 通过Panel、TextCtrl增加一个文本输入框的位置
text1 = wx.TextCtrl(panel, value="Hello, World!", size=(350, 200))
# 把初始的文本内容设置为Hello, World!
if __name__ == '__main__':
app = wx.App()
frame = Frame1(None)
frame.Show(True)
app.MainLoop()
运行结果如下所示:
事件处理机制- GUI程序工作的基本机制之一——事件处理
- 事件
- – 移动鼠标,按下鼠标左键、单击按钮等
- – 可以由用户操作触发产生,也可以在程序中创建对象产生
- wxPython程序将特定类型的事件关联到特定的一块代码(方法),当 该类型的事件产生时,相关代码将响应事件被自动执行
- – 例:当产生鼠标移动事件时,OnMove()方法将被自动调



