python的視窗事件(六)
阿新 • • 發佈:2019-01-28
下面是針對上次視窗,新增相應的事件。
元件要繫結一個事件函式,才能讓元件起作用。如openbutton是一個按鈕元件,openfile是一個函式,EVT_BUTTON是一個事件,這一可以通過Bind,把元件和事件函式聯絡在一起,即openbutton.Bind(EVT_BUTTON,openfile)。
程式碼如下:
#coding:utf8 #利用佈局管理器,管理視窗 import wx app = wx.App() win = wx.Frame(None, title = "ahuang1900", size = (410,340)) #建立視窗 bkg = wx.Panel(win) #建立畫布 def openfile(evt): #事件函式 filepath = filename.GetValue() #獲取值 fopen = open(filepath) #開啟檔案 contents.SetValue(fopen.read()) #設定值 fopen.close() def savefile(evt): filepath = filename.GetValue() fopen = open(filepath,'w') fopen.write(contents.GetValue()) fopen.close() #基於畫布來建立主件,這樣主件可以置於畫布上了 openbutton = wx.Button(bkg, label = "open") #建立主件1 savebutton = wx.Button(bkg, label = "save") #建立主件2 filename = wx.TextCtrl(bkg) #建立主件3 contents = wx.TextCtrl(bkg, style = wx.TE_MULTILINE | wx.HSCROLL) #建立主件4 openbutton.Bind(wx.EVT_BUTTON, openfile) #主件openbutton繫結一個事件函式openfile savebutton.Bind(wx.EVT_BUTTON, savefile) #主件savebutton繫結一個事件函式savefile hbox = wx.BoxSizer() #建立佈局管理器1 #下面是把已經建立好的主件以一定的方式新增到佈局管理器1中 hbox.Add(filename, 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) #建立佈局管理器2 #下面是把已經建立好的主件和佈局管理器2以一定的方式新增到佈局管理器2中 bbox.Add(hbox, proportion = 0, flag = wx.EXPAND | wx.ALL, border = 5) bbox.Add(contents, proportion = 1, flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT , border = 5) bkg.SetSizer(bbox) #把佈局管理器,放置在畫布中 win.Show() app.MainLoop()
執行結果: