python - Getting the event name rather than integer ID in wxPython -
i have following code:
self.sliderr.bind(wx.evt_scroll,self.onslide)
in function onslide
have inserted code pdb.set_trace()
me debug.
in pdb prompt if type event.geteventtype()
returns number (10136) have no idea event corresponds to.
does 10136 refer wx.evt_scroll
or event triggers wx.evt_scroll
event? if latter true, how find specific event?
thanks.
there isn't built-in way. need build event dictionary. robin dunn has code here help: http://osdir.com/ml/wxpython-users/2009-11/msg00138.html
or can check out simple example:
import wx class myform(wx.frame): def __init__(self): wx.frame.__init__(self, none, title="tutorial") self.eventdict = {} name in dir(wx): if name.startswith('evt_'): evt = getattr(wx, name) if isinstance(evt, wx.pyeventbinder): self.eventdict[evt.typeid] = name # add panel looks correct on platforms panel = wx.panel(self, wx.id_any) btn = wx.button(panel, wx.id_any, "get pos") btn.bind(wx.evt_button, self.onevent) panel.bind(wx.evt_left_dclick, self.onevent) panel.bind(wx.evt_right_down, self.onevent) def onevent(self, event): """ print out event fired """ evt_id = event.geteventtype() print self.eventdict[evt_id] # run program if __name__ == "__main__": app = wx.app(false) frame = myform().show() app.mainloop()
Comments
Post a Comment