利用wxpython编写GUI

  首先建立一个简单的布局合理的图形界面,但是其中按下按键没有事情发生

 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()

上面的代码中添加了处理事件的函数,可以将函数绑定到对应的按键上去。本事件用到了对文件的读写的操作。

 

posted @ 2015-04-19 16:21  xiaoli2018  阅读(610)  评论(0编辑  收藏  举报