wxPython学习笔记

1.下载,安装wxPython。注意应该选择与本机上python相同的版本。
地址:[http://www.wxpython.org/download.php#stable](http://www.wxpython.org/download.php#stable)
2.我使用的是eclipse+pydev环境,使用时应该重新设置下python解释器环境。
3.hello,world
#!/usr/bin/env python
import wx
app = wx.App(False)  # 创建实例,False表明不重定位到标准输出/错误输出
frame = wx.Frame(None, wx.ID_ANY, "Hello World"# 创建窗口,第一个参数指示父窗口,第二个自动获得ID,第三个参数为窗口名称
frame.Show(True)     # 显示窗口
app.MainLoop()
![](http://codeplanet-wordpress.stor.sinaapp.com/uploads/2013/09/wpid-1e94f28da2be80f9dcd7a3ebc4da2234_2252280.png) 
4.简单文本编辑:MyFrame继承wx.Frame,重写了init方法,添加了wx.TextCtrl控件
#!/usr/bin/env python
import wx
class MyFrame(wx.Frame):
    """ We simply derive a new class of Frame. """
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(200,100))
        self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
        self.Show(True)
app = wx.App(False)
frame = MyFrame(None'Small editor')
app.MainLoop()
![](http://codeplanet-wordpress.stor.sinaapp.com/uploads/2013/09/wpid-1e94f28da2be80f9dcd7a3ebc4da2234_3704524.png)
5. 使用菜单栏
win.CreateStatusBar()
filemenu = wx.Menu()
filemenu.Append(wx.ID_ABORT,"about title","this is the about information")
filemenu.AppendSeparator()
filemenu.Append(wx.ID_EDIT,"lalala")
menubar = wx.MenuBar()
menubar.Append(filemenu,"File")
win.SetMenuBar(menubar)
![](http://codeplanet-wordpress.stor.sinaapp.com/uploads/2013/09/wpid-1e94f28da2be80f9dcd7a3ebc4da2234_6436429.jpg)
6.使用尺寸器
#coding:utf-8
import wx
from wx._core import HSCROLL
app = wx.App()
win = wx.Frame(None,title = "Simple Editor")
bkg = wx.Panel(win)         #加入面板
loadbtn = wx.Button(bkg,label="open")
savebtn = wx.Button(bkg,label="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(loadbtn,proportion=0,flag=wx.LEFT,border=5)
hbox.Add(savebtn,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()
![](http://codeplanet-wordpress.stor.sinaapp.com/uploads/2013/09/wpid-1e94f28da2be80f9dcd7a3ebc4da2234_9445829.png)
7.事件处理
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()
 
loadbtn = wx.Button(bkg,label="open")
loadbtn.Bind(wx.EVT_BUTTON, load)
savebtn = wx.Button(bkg,label="save")
savebtn.Bind(wx.EVT_BUTTON, save)
 
[来自为知笔记(Wiz)](http://www.wiz.cn/i/c09d0bb5 "来自为知笔记(Wiz)")
坚持原创技术分享,您的支持将鼓励我继续创作!