【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)...
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用wx.ScrolledWindow类来实现带有上下滚动条的窗口。首先,你需要创建一个wx.ScrolledWindow对象,并将你的内容放置在它的子窗口中。然后,你可以使用wx.ScrollBar函数来添加水平和垂直滚动条。下面是一个示例代码: ```python import wx class MyFrame(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(300, 200)) # 创建一个wx.ScrolledWindow对象 self.scroll = wx.ScrolledWindow(self, size=(300, 200)) # 创建一个垂直滚动条 self.vscroll = wx.ScrollBar(self.scroll, style=wx.SB_VERTICAL) self.scroll.SetScrollbars(0, 10, 0, 100) # 设置滚动条的范围 # 在wx.ScrolledWindow中添加内容 self.panel = wx.Panel(self.scroll) sizer = wx.BoxSizer(wx.VERTICAL) for i in range(20): text = wx.StaticText(self.panel, label='This is line %d.' % i) sizer.Add(text, 0, wx.ALL, 5) self.panel.SetSizer(sizer) # 将wx.ScrollBar添加到wx.ScrolledWindow中 self.scroll.Bind(wx.EVT_SCROLL, self.OnScroll) self.scroll.Bind(wx.EVT_SIZE, self.OnSize) # 显示窗口 self.Show(True) # 滚动条滚动事件处理函数 def OnScroll(self, event): self.scroll.Scroll(0, self.vscroll.GetThumbPosition()) # 窗口大小改变事件处理函数 def OnSize(self, event): self.vscroll.SetScrollbar(0, 10, 0, self.panel.GetSize().height) event.Skip() app = wx.App(False) frame = MyFrame(None, 'Scrolling Window') app.MainLoop() ``` 上面的代码创建了一个带有垂直滚动条的wx.ScrolledWindow对象,并将一些静态文本添加到其中。在滚动条滚动事件处理函数中,我们使用Scroll()函数来移动wx.ScrolledWindow对象的子窗口。在窗口大小改变事件处理函数中,我们使用SetScrollbar()函数来设置滚动条的范围。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值