Events 如何在wxPython中获取事件的详细信息
我有一段代码返回由滑块生成的事件 我使用Events 如何在wxPython中获取事件的详细信息,events,event-handling,wxpython,Events,Event Handling,Wxpython,我有一段代码返回由滑块生成的事件 我使用self.bind(wx.EVT\u SCROLL,self.OnSlide)绑定事件 处理事件的代码如下所示: def OnSlide(self,event): widget = event.GetEventObject() 这很好,但是每次执行代码时都会抛出一个错误。内容如下: AttributeError: 'PyEventBinder' object has no attribute 'GetEventObject' 我希望能够看到哪个
self.bind(wx.EVT\u SCROLL,self.OnSlide)
绑定事件
处理事件的代码如下所示:
def OnSlide(self,event):
widget = event.GetEventObject()
这很好,但是每次执行代码时都会抛出一个错误。内容如下:
AttributeError: 'PyEventBinder' object has no attribute 'GetEventObject'
我希望能够看到哪个滑块生成了事件,但每次我尝试查找时都会出现错误
如何使代码正确执行
非常感谢。要调试类似的内容,请将以下内容作为事件处理程序中的第一条语句:
import pdb; pdb.set_trace()
这将在此时停止程序的执行,并给出交互式提示。然后,您可以发出以下命令以了解可用的方法:
print dir(event)
当我第一次学习wxPython时,我发现这项技术非常宝贵。以下内容适用于我在Windows 7、wxPython 2.8.10.1和Python 2.5上的工作
import wx
class MyForm(wx.Frame):
#----------------------------------------------------------------------
def __init__(self):
wx.Frame.__init__(self, None, title="Tutorial")
# Add a panel so it looks the correct on all platforms
panel = wx.Panel(self, wx.ID_ANY)
slider = wx.Slider(panel, size=wx.DefaultSize)
slider.Bind(wx.EVT_SLIDER, self.onSlide)
#----------------------------------------------------------------------
def onSlide(self, event):
""""""
obj = event.GetEventObject()
print obj
#----------------------------------------------------------------------
# Run the program
if __name__ == "__main__":
app = wx.App(False)
frame = MyForm().Show()
app.MainLoop()
这是wx.滑块还是别的什么?看到PyEventBinder我有点困惑。GetEventObject应该存在于任何事件上。