2008年5月26日 星期一

wxPython自訂event

下面介紹如何自訂一個自己的event :


class TwoButtonEvent(wx.PyCommandEvent): #自訂event
def __init__(self, evtType, id):
wx.PyCommandEvent.__init__(self, evtType, id)
self.clickCount = 0

def GetClickCount(self):
return self.clickCount

def SetClickCount(self, count):
self.clickCount = count

myEVT_TWO_BUTTON = wx.NewEventType() #建立新event
EVT_TWO_BUTTON = wx.PyEventBinder(myEVT_TWO_BUTTON, 1) #建立新event binder

上面的部分為定義event和event binder. 在要產生event的地方則是以下面的code來產生event :

evt = TwoButtonEvent(myEVT_TWO_BUTTON, self.GetId())
evt.SetClickCount(self.clickCount)
self.GetEventHandler().ProcessEvent(evt)

利用ProcessEvent來將event產生到queue裡面等待處理.

參考資料 :
http://www.pythontik.com/blog/article.asp?id=192

沒有留言: