27-python_GUI-布局管理-事件處理__python

來源:互聯網
上載者:User
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()



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.