在python中有很多的GUI库,我选择的是比较成熟的wxpython.这个基本上可以满足我们的需要了,操作起来也比较简单。下面通过一些简单的例子逐步的来学习wxpython。
1.建立一个最简单的GUI窗口:
3 import wx 2 app=wx.App() 1 win=wx.Frame(None) 7 win.Show() 1 app.MainLoop()
2,在里面加上必要的文字说明。
1 import wx 2 app=wx.App() 3 win=wx.Frame(None,title='example') 4 win.Show() 5 app.MainLoop()
1 import wx 2 app=wx.App() 3 win=wx.Frame(None,title='example') 4 btn=wx.Button(win,label='open') 5 win.Show() 6 app.MainLoop()
1 import wx 2 app=wx.App() 3 win=wx.Frame(None,title='editor',size=(400,300)) 4 texinput=wx.TextCtrl(win,pos=(5,5),size=(210,25)) 5 openbtn=wx.Button(win,label='open',pos=(225,5),size=(80,25)) 6 savebtn=wx.Button(win,label='save',pos=(315,5),size=(80,25)) 7 contents=wx.TextCtrl(win,pos=(5,35),size=(380,250)) 8 win.Show() 9 app.MainLoop()得到的结果:
5,事件控制
计算1+2+3……+n,在小窗口中输入数据n,得到输出结果:
代码:
import wx 2 class Frame(wx.Frame): 3 def __init__(self,superion): 4 wx.Frame.__init__(self,parent=superion,title='input and output computer',size=(400,200)) 5 panel=wx.Panel(self) 6 wx.StaticText(panel,label='input n:',pos=(10,10)) 7 self.inputN=wx.TextCtrl(panel,pos=(150,10)) 8 wx.StaticText(panel,label='the sum till n:',pos=(10,50)) 9 self.outsum=wx.TextCtrl(panel,pos=(150,50)) 10 self.btnsum=wx.Button(panel,label='compute',pos=(150,100),size=(50,30)) 11 self.Bind(wx.EVT_BUTTON,self.f,self.btnsum) 12 13 def f(self,event): 14 n=self.inputN.GetValue() 15 n=int(n) 16 i=1 17 s=0 18 for i in range(1,n+1): 19 s=s+i 20 self.outsum.SetValue(str(s)) 21 22 if __name__=='__main__': 23 app=wx.App() 24 frame=Frame(None) 25 frame.Show() 26 app.MainLoop()