wxPython 两种事件绑定方式的区别 self.Bind and self.button.Bind
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wxPython 两种事件绑定方式的区别 self.Bind and self.button.Bind相关的知识,希望对你有一定的参考价值。
目录
- 问题描述和解决方法
- 参考
问题描述和解决方法
wxpython 有两种事件绑定方式:
#1.通过Frame的Bind 绑定组件的事件
self.Bind(wx.EVT_BUTTON,self.OnClick,self.btn1)
#2.组件自身绑定事件
self.btn1.Bind(wx.EVT_BUTTON,self.OnClick)
看起来这两种方法都要行,事实上大部分情况下,确实是差不多的,但还是有一些区别的。
我在对一个TextCtrl绑 EVT_SET_FOCUS时碰到问题了,开始我是用第一种方法绑定的,但并不能激活事件。试了很久才怀疑是不是这两种绑定有区别,换成第二种方式立马就激活了。
#这种方式并不会激活
self.Bind(wx.EVT_SET_FOCUS,self.OnFoucs,self.txt1)
#这种方式是可以激活
self.txt1.Bind(wx.EVT_SET_FOCUS,self.OnFocus)
找了一下官网,发现还真有区别,只有当 事件类型是 wx.CommandEvent的时候,两种方式等价,其它类型就不一定了。
参考
https://wiki.wxpython.org/self.Bind%20vs.%20self.button.Bind
以上是关于wxPython 两种事件绑定方式的区别 self.Bind and self.button.Bind的主要内容,如果未能解决你的问题,请参考以下文章