安裝wxPython
下面是wxPython特別基礎的使用方法曹抬,將以一個小程序為例來說明息楔,它的功能是在一個文本框中輸入文件名毫缆,點擊open按鈕杏节,會在另一個文本框中顯示其內(nèi)容唬渗,可以進行修改,點擊save可以保存修改奋渔。
wxPython的使用簡介
創(chuàng)建應用程序?qū)ο螅簑x.App()
app=wx.App() app.MainLoop()
窗口/框架:wx.Frame()
win=wx.Frame(None,title='example') win.Show()
組件
- 按鈕:wx.Button()
關鍵字label設置標簽:
btn=wx.Button(win,label='open')
綁定事件:
btn.Bind(wx.EVT_BUTTON,load)
- 文本控件:wx.TextCtrl()
關鍵字style有wx.TE_MULTILINE(垂直滾動條)镊逝,wx.HSXROLL(水平滾動條):
filename=wx.TextCtrl(win,style=wx.TE_MULTILINE|wx.HSXROLL)
同時我們可以在讀取或者寫入其內(nèi)容:
filename.GetValue()
filename.SetValue('string')
布局:使用尺寸器(sizer)
wx.BoxSizer的原理是創(chuàng)建一個箱子一樣的東西,只能橫著或者豎著放組件嫉鲸,一個一個的加進去撑蒜,除了基本大小外其余空間按比例分配。加完一行行的箱子后充坑,創(chuàng)建一個豎著的箱子减江,將這些橫著的箱子(也可以是其他組件)加進去染突。
*背景組件:wx.Panel()
以窗口為參數(shù)構(gòu)建捻爷,所有的組件依附其上,在設置完尺寸器后份企,使用bkg.SetSizer(box)
- 尺寸器的構(gòu)建函數(shù):wx.BoxSizer()
有一個決定它是垂直還是水平的參數(shù)(wx.HORIZONTAL水平也榄,wx.VERTICAL垂直),默認為水平司志。
box=wx.BoxSizer(wx.VERTICAL)
- Add方法
proportion參數(shù)決定這個組件在剩余空間中的分配比例甜紫,flag參數(shù)有wx.EXPAND(會確保組件會擴展到分配的空間里),wx.LEFT,wx.RIGHT,wx.TOP,wx.BOTTOM,wx.ALL(這五個決定邊框參數(shù)會應用到那個邊),border參數(shù)會確定邊框的大小骂远。
完整版的源代碼如下:
#coding=utf-8
import wx
#設置函數(shù)
def load(event):
f=open(filename.GetValue(),'r')
content.SetValue(f.read())
f.close()
def save(event):
f=open(filename.GetValue(),'w')
f.write(content.GetValue())
f.close()
app=wx.App()
win=wx.Frame(None,title='simple editor',size=(410,330))
bkg=wx.Panel(win)
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)
content=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.ALL,border=5)
vbox.Add(content,proportion=1,flag=wx.EXPAND|wx.ALL,border=5)
bkg.SetSizer(vbox)
win.Show()
app.MainLoop()`