首先建立一个简单的布局合理的图形界面,但是其中按下按键没有事情发生
1 #encoding=utf-8 2 __author__ = 'heng' 3 #编写一个GUI 4 import wx 5 app = wx.App() #先创建一个图形界面 6 win = wx.Frame(None,title = "simple editor",size = (500,500)) #title用于设置图形界面的标题,size是用来设置窗口的初始大小 7 bkg = wx.Panel(win) #利用Panel管理界面的布局 8 saveButton = wx.Button(bkg,label = 'save') #在画布bkg上设置标签为save的按键 9 openButton = wx.Button(bkg,label = 'open') 10 filename = wx.TextCtrl(bkg) #此函数用于在画布上建立一个文本的输入框 11 contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL) #在画布上建立可换行的文本输入框并且添加了滚动条 12 #开始布局文本框,左右的布局 13 hbox = wx.BoxSizer() #开始添加尺寸器,默认为水平 14 hbox.Add(filename,proportion = 1,flag = wx.EXPAND) #proportion用于设置对象所占的比例,1代表占用剩下的额外空间的所有的空间,flag用来设置图标的属性,wx.EXPAND代表图标可扩展 15 hbox.Add(saveButton,proportion = 0,flag = wx.LEFT,border = 5) #代表距离左边界的距离为5个像素点(边缘的宽度,间隔) 16 hbox.Add(openButton,proportion = 0,flag = wx.LEFT,border = 5) 17 #开始上下的布局 18 bbox = wx.BoxSizer(wx.VERTICAL) #上下的布局,垂直的布局 19 bbox.Add(hbox,proportion = 0,flag = wx.EXPAND | wx.ALL,border = 5) 20 bbox.Add(contents,proportion = 1,flag = wx.EXPAND| wx.LEFT|wx.RIGHT|wx.BOTTOM,border = 5) 21 22 bkg.SetSizer(bbox) 23 win.Show() 24 app.MainLoop()
下面建立一个可以处理按键事件的图形界面
1 #encoding=utf-8 2 __author__ = 'heng' 3 #编写一个GUI 4 import wx 5 #添加按键的事件 6 def load(event): 7 file = open(filename.GetValue()) #打开小的文本框中的文件 8 contents.SetValue(file.read()) #读取文本的信息 9 file.close() 10 def save(event): 11 file = open(filename.GetValue(),'w') 12 file.write(contents.GetValue()) 13 file.close() 14 15 app = wx.App() #先创建一个图形界面 16 win = wx.Frame(None,title = "simple editor",size = (500,500)) #title用于设置图形界面的标题,size是用来设置窗口的初始大小 17 bkg = wx.Panel(win) #利用Panel管理界面的布局 18 saveButton = wx.Button(bkg,label = 'save') #在画布bkg上设置标签为save的按键 19 saveButton.Bind(wx.EVT_BUTTON,save) #将save的事件处理绑定到按键上 20 openButton = wx.Button(bkg,label = 'open') 21 openButton.Bind(wx.EVT_BUTTON,load) 22 filename = wx.TextCtrl(bkg) #此函数用于在画布上建立一个文本的输入框 23 contents = wx.TextCtrl(bkg,style = wx.TE_MULTILINE | wx.HSCROLL) #在画布上建立可换行的文本输入框并且添加了滚动条 24 #开始布局文本框,左右的布局 25 hbox = wx.BoxSizer() #开始添加尺寸器,默认为水平 26 hbox.Add(filename,proportion = 1,flag = wx.EXPAND) #proportion用于设置对象所占的比例,1代表占用剩下的额外空间的所有的空间,flag用来设置图标的属性,wx.EXPAND代表图标可扩展 27 hbox.Add(saveButton,proportion = 0,flag = wx.LEFT,border = 5) #代表距离左边界的距离为5个像素点(边缘的宽度,间隔) 28 hbox.Add(openButton,proportion = 0,flag = wx.LEFT,border = 5) 29 #开始上下的布局 30 bbox = wx.BoxSizer(wx.VERTICAL) #上下的布局,垂直的布局 31 bbox.Add(hbox,proportion = 0,flag = wx.EXPAND | wx.ALL,border = 5) 32 bbox.Add(contents,proportion = 1,flag = wx.EXPAND| wx.LEFT|wx.RIGHT|wx.BOTTOM,border = 5) 33 34 bkg.SetSizer(bbox) 35 win.Show() 36 app.MainLoop()
上面的代码中添加了处理事件的函数,可以将函数绑定到对应的按键上去。本事件用到了对文件的读写的操作。