Wxpython 事件的定义与绑定

# -*- coding:utf-8 -*-

'''
Wxpython 事件的定义与绑定
    1.定义事件函数
      事件函数不能接受其它参数,只能接受 event 的参数
    2.将事件函数和我们组件触发的事件绑定起来
'''

import wx

#定义事件函数
    #读函数
def openFile(event):
    '''
    getvalue 是获取文本框的值
    setvalue 是设置文本框的值
    '''
    with open(pathText.GetValue(),"r") as f:
        content.SetValue(f.read())
    #写函数
def saveFile(event):
    with open(pathText.GetValue(),"w") as f:
        f.write(content.GetValue())


app = wx.App()
frame = wx.Frame(None,title="MyFrame",size = (420,350))
panel = wx.Panel(frame)     #创建画布,以主窗口为父
but1 = wx.Button(panel,label="save")    #以画布为父类
but2 = wx.Button(panel,label="open")

#绑定事件
but2.Bind(wx.EVT_BUTTON,openFile)
but1.Bind(wx.EVT_BUTTON,saveFile)

pathText = wx.TextCtrl(panel)   #以画布为父类
content = wx.TextCtrl(panel)

#声明尺寸器
sBox = wx.BoxSizer()               #水平尺寸器,不带参数则为默认的水平尺寸器
vBox = wx.BoxSizer(wx.VERTICAL)    #垂直尺寸器

#给尺寸器添加组件,从左往右,从上到下
sBox.Add(pathText,proportion = 3,flag = wx.EXPAND|wx.ALL,border = 5)
sBox.Add(but1,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 5)
sBox.Add(but2,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 5)

vBox.Add(sBox,proportion = 1,flag = wx.EXPAND|wx.ALL,border = 5)
vBox.Add(content,proportion = 5,flag = wx.EXPAND|wx.ALL,border = 5)

#设置主尺寸
panel.SetSizer(vBox) #因为sBox被嵌套在vBox上,所以以vBox为主尺寸

frame.Show()  #因为文本组件和按钮组件都是以窗框组件为父组件,所以只需要调用frame
app.MainLoop()
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值