Python 通过工具栏删除带有auitoolbar的面板时出现PyDeadObjectError
我有一个带有auitoolbar的面板,工具栏上有一个“删除”按钮。按下此按钮将删除面板和其中的所有内容。问题是,除了我用来触发删除的Python 通过工具栏删除带有auitoolbar的面板时出现PyDeadObjectError,python,wxpython,wxauitoolbar,Python,Wxpython,Wxauitoolbar,我有一个带有auitoolbar的面板,工具栏上有一个“删除”按钮。按下此按钮将删除面板和其中的所有内容。问题是,除了我用来触发删除的wx.EVT_工具之外,auitoolbar还触发面板删除后发生的OnLeftUp事件,因此PyDeadObjectError。 这有什么办法吗? 常规按钮工作正常,只是auitoolbar有问题 python 2.7.2 wxpython 2.8.12 OnLeftUp是否与wx.EVT\u LEFT\u UP事件绑定?如果是这样,则在面板删除时,您还需要显式
wx.EVT_工具
之外,auitoolbar还触发面板删除后发生的OnLeftUp
事件,因此PyDeadObjectError
。
这有什么办法吗?
常规按钮工作正常,只是auitoolbar有问题
python 2.7.2
wxpython 2.8.12
OnLeftUp
是否与wx.EVT\u LEFT\u UP
事件绑定?如果是这样,则在面板删除时,您还需要显式解除面板与事件的绑定:
self.panel.Unbind(wx.EVT_LEFT_UP)
我想是的,但它是auitoolbar内部的东西,无论我做什么都无法解除绑定。然后,如果你不能在面板删除之前解除auitoolbar中
LEFT\u UP
事件的绑定,你可以将auitoolbar
类子类化,用EVT\u CLOSE
绑定一些方法,在该方法中,解开LEFT\u UP
事件的绑定。经过一点挖掘,似乎按钮按下和释放的所有功能都是由wx.EVT\u LEFT\u UP
在auitoolbar中处理的,因此可能唯一的选择是使用相同的事件触发删除。