
wxPython编写界面程序的基本流程:
1、import wx #导入wxPython的包
2、class App(wx.App) #子类化一个应用程序类
3、def onInit(self) #定义应用程序类的初始化方法
4、app = App() #实例化一个应用程序类
5、app.MainLoop() #进入这个应用程序的主事件循环
下面是一个例子:
import wx #——对应第一步
class App(wx.App): #——对应第二步
def OnInit(self): #——对应第三步
frame = wx.Frame(parent = None, id = -1, title = 'Bare')
frame.Show() #默认参数为True,即frame.Show(True)
return True #这里一定要写return,否则就会一闪而过;return False的话会一闪而过,然后提示退出;因此要能够自主关闭,看到程序框架的话,必须得return True
app = App() #——对应第四步
app.MainLoop() #——对应第五步
下面是一个实例(python基础教程第二版12章),但是不是以class的面向对象的形式来展现的,基本涵盖了一个可响应的活的应用程序的几个组成部分:
1、导入wxPython的包
2、定义一会需要用到的响应函数load和save
3、实例化一个应用程序类:如果app =wx.App()不生效或者有问题的话,可以使用app = wx.PySimpleApp()语句
4、定义frame
5、定义panel,将所需要的按钮、文本框等放到panel中
6、智能布局:使用BoxSizer() ,采用相对布局,将布局纳入到panel中
7、定义响应绑定事件(使用wxPython本身的响应函数,将具体需要操作的事件定义在事件函数中,绑定后即可通过相应操作,做出需要的响应)
8、show出Frame
9、进入app应用程序的主事件循环
# -*-coding:gb2312-*- #Function:第12章-图形用户界面,写一个记事本的简化程序
#Author:LiXia
#Version:V 1.0.0.1 import wx def load(event):
file = open(filename.GetValue())
contents.SetValue(file.read())
file.close() def save(event):
file = open(filename.GetValue(), 'w')
file.write(contents.GetValue())
file.close() app = wx.App()
win = wx.Frame(None, id = -1, title = 'Simple Editor', size = (410, 335)) bkg = wx.Panel(win) loadButton = wx.Button(bkg, label = 'Open')
loadButton.Bind(wx.EVT_BUTTON, load) saveButton = wx.Button(bkg, label = 'Save')
saveButton.Bind(wx.EVT_BUTTON, save) filename = wx.TextCtrl(bkg)
contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE|wx.HSCROLL) hbox = wx.BoxSizer()
hbox.Add(filename, proportion = 1, flag = wx.EXPAND)
hbox.Add(loadButton, proportion = 0, flag = wx.LEFT, border = 5)
hbox.Add(saveButton, proportion = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion = 0, flag = wx.EXPAND|wx.ALL, border = 5)
vbox.Add(contents, proportion = 1, flag = wx.EXPAND|wx.LEFT|wx.Bottom|wx.RIGHT, border = 5) bkg.SetSizer(vbox)
win.Show() app.MainLoop()