【wxpython】Bind绑定带不定参

Bind绑定带不定参

一般情况下我们事件监听绑定如下:

btn = wx.Button(parent=panel, label="启动")
btn.Bind(wx.EVT_LEFT_DOWN, OnClick)
def OnClick(event):
	print(event)

如果要传递参数:

btn.Bind(wx.EVT_LEFT_DOWN, lambda evt: OnClick(evt, param))

def OnClick(event, param):
	print(event)
	print(param)

简单说就是利用lambda实现,具体不懂自行查询资料

所以要不定参的话:

x=1
b=2
btn.Bind(wx.EVT_LEFT_DOWN, lambda evt: OnClick(evt, x=x, b=b))
def OnClick(event, **param):
	print(param)

最终封装优化下:

Bind(btn1, method="start")
Bind(btn2, method="end")
def Bind(component, method, event=wx.EVT_LEFT_DOWN, **args):
    component.Bind(event, lambda evt: globals().get(method)(evt, args))

def start(event, param)...
def end(event,param)...

你可能感兴趣的:(琐碎,小技巧,wxpython,python)