wxPython安装与GUI

来源:互联网 发布:迅雷 2.7.5 mac 破解 编辑:程序博客网 时间:2024/06/13 02:03

1.首先是安装位的问题,Python安装的是32位,但是wxPython安装的是64位

然后出现了“python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序”这个问题


2.版本问题,下载wxPython的网站只有针对Python2.7和Python2.6的,而我安装的是Python3.4的,于是又重新安装的一个Python2.7的,现在是可以了


3.第一个界面的显示

输入如下代码,显示了一个简单的界面

import wxapp=wx.App()win=wx.Frame(None)win.Show()app.MainLoop()

然后添加控件,如下,位置是通过固定的点设定的,为绝对布局

import wxapp=wx.App()win=wx.Frame(None,title="Simple Editor")loadButton=wx.Button(win,label='Open',pos=(255,5),size=(80,25))saveButton=wx.Button(win,label='Save',pos=(315,5),size=(80,25))filename=wx.TextCtrl(win,pos=(5,5),size=(210,25))contents=wx.TextCtrl(win,pos=(5,35),size=(390,260),style=wx.TE_MULTILINE|wx.HSCROLL)win.Show()app.MainLoop()


更智能的布局,会随着视图的大小而改变

import wxapp=wx.App()win=wx.Frame(None,title="Simple Editor",size=(410,335))bkg=wx.Panel(win)loadButton=wx.Button(bkg,label='Open')saveButton=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(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()



设置按钮事件:

在filename上输入文件名如a.txt,在contents上输入内容,点击save;

关闭窗口,在filename上输入文件名a.txt,点击open,contents上会显示之前保存的内容

import wx#先获取filename的文件,读取其中的值到contents上def load(event):    file=open(filename.GetValue())    contents.SetValue(file.read())    file.close()#获取filename上的文件,以写的方式,将contents上的内容写到文件中def save(event):    file=open(filename.GetValue(),'w')    file.write(contents.GetValue())    file.close()app=wx.App()#不明白win=wx.Frame(None,title="Simple Editor",size=(410,335))#获取窗口实例bkg=wx.Panel(win)#获取窗口的背景,面板#Button的事件处理函数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的组合控件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)#使用尺寸器,将hbox放到vbox中,完成vobx的组合控件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)#使用面板的SetSizer方法设定它的尺寸器bkg.SetSizer(vbox)win.Show()app.MainLoop()



1 0
原创粉丝点击