我怀疑你已经在使用它了,而没有意识到它是什么。
例如,这些是等效的:
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.OnTimer, self.timer)
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.OnTimer, source=self.timer)
self.timer = wx.Timer(self,42)
self.Bind(wx.EVT_TIMER, self.OnTimer, id=42)
self.timer = wx.Timer(self,wx.NewId())
self.Bind(wx.EVT_TIMER, self.OnTimer, id=self.timer.GetId())
这个
id=wx.ID_ANY, id2=wx.ID_ANY
只允许您分配一系列id,在事件发生时负责检查id。
例如,我使用此代码正是出于这样的原因。
self.Bind(wx.EVT_MENU, self.OnAutoTimeStamp, id=TIMESTAMP_OFF,id2=TIMESTAMP_COMMENT)
哪里:
TIMESTAMP_OFF = wx.NewId()
TIMESTAMP_STD = wx.NewId()
TIMESTAMP_BOOKMARK = wx.NewId()
TIMESTAMP_COMMENT = wx.NewId()
请注意,它们可以同样容易地为1、2、3和4
在这种情况下,上述
self.Bind(wx.EVT_MENU, self.OnAutoTimeStamp, id=1,id2=4)
以及:
def OnAutoTimeStamp(self,event):
if self.autom.IsChecked(TIMESTAMP_OFF):
self.auto_ts = ""
elif self.autom.IsChecked(TIMESTAMP_STD):
self.auto_ts = "S"
elif self.autom.IsChecked(TIMESTAMP_BOOKMARK):
self.auto_ts = "B"
elif self.autom.IsChecked(TIMESTAMP_COMMENT):
self.auto_ts = "A"