27-python_GUI-布局管理-事件处理

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 wx

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)

#默认水平, 放置 文件路径文本框 打开按钮 保存按钮
# 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 wx

def 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()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值