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应该存在于任何事件上。