1. wxPython-布局管理
尺寸器
- sizer, wx.BoxSizer
- >>> help(wx.BoxSizer)
- 作用: 管理添加在其中的組件布局位置
- 用法:
hbox = wx.BoxSizer([wx.HORIZONTAL])
vbox = wx.BoxSizer(wx.VERTICAL)
- 增加panel以利於布局
- 添加組件進行管理
sizer.add(組件,proportion=,flag=,border=)
例子
#-*- encoding:UTF-8 -*-import wxapp = wx.App()win = wx.Frame(None, title="My Notebook", size=(410, 335))panel = wx.Panel(win)openButton = wx.Button(panel, label="Open")saveButton = wx.Button(panel, label="Save")filepathTxt = wx.TextCtrl(panel)contentTxt = wx.TextCtrl(panel, style=wx.TE_MULTILINE)#預設水平, 放置 檔案路徑文字框 開啟按鈕 儲存按鈕# proportion : 佔總體的 幾分之1# flag : expand 擴充hbox = wx.BoxSizer() hbox.Add(filepathTxt, proportion=1, flag=wx.EXPAND)hbox.Add(openButton, proportion=0, flag=wx.LEFT, border=5)hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5)#垂直, bbox = wx.BoxSizer(wx.VERTICAL)bbox.Add(hbox, proportion=0, flag=wx.EXPAND|wx.ALL, border=5)bbox.Add(contentTxt, proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)panel.SetSizer(bbox)win.Show()app.MainLoop()
2. wxPython-事件處理
通過組件的 Bind(func) 綁定事件處理函數
如, 點擊按鈕時往控制台列印"hello"
def printHelloEvtHandle(evt) :
print "hello"
btn.Bind(wx.EVT_BUTTON, printHelloEvtHandle)
舉例:
#-*- encoding:UTF-8 -*-import wxdef openFileEventHandle(evt) : filepath = filepathTxt.GetValue() fopen = open(filepath) content = fopen.read() fopen.close() contentTxt.SetValue(content)def saveFileEventHandle(evt) : filepath = filepathTxt.GetValue() fopen = open(filepath, "w") content = contentTxt.GetValue() fopen.write(content) fopen.close()app = wx.App()win = wx.Frame(None, title="My Notebook", size=(410, 335))panel = wx.Panel(win)openButton = wx.Button(panel, label="Open")saveButton = wx.Button(panel, label="Save")filepathTxt = wx.TextCtrl(panel)contentTxt = wx.TextCtrl(panel, style=wx.TE_MULTILINE)#綁定事件openButton.Bind(wx.EVT_BUTTON, openFileEventHandle)saveButton.Bind(wx.EVT_BUTTON, saveFileEventHandle)#預設水平, 放置 檔案路徑文字框 開啟按鈕 儲存按鈕# proportion : 佔總體的 幾分之1# flag : expand 擴充hbox = wx.BoxSizer() hbox.Add(filepathTxt, proportion=1, flag=wx.EXPAND)hbox.Add(openButton, proportion=0, flag=wx.LEFT, border=5)hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5)#垂直, bbox = wx.BoxSizer(wx.VERTICAL)bbox.Add(hbox, proportion=0, flag=wx.EXPAND|wx.ALL, border=5)bbox.Add(contentTxt, proportion=1,flag=wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT,border=5)panel.SetSizer(bbox)win.Show()app.MainLoop()