我有一個文本ctrl用戶給數字。 一旦他完成我想執行操作。如何使EVT_TEXT_ENTER與EVT_KILL_FOCUS一起工作?
我知道用戶完成時,textctrl失去了焦點或當他按下輸入。
我做了以下內容:
self.a= wx.TextCtrl(self, -1,style=wx.TE_PROCESS_ENTER)
self.a.Bind(wx.EVT_KILL_FOCUS, self.OnA)
self.a.Bind(wx.EVT_TEXT_ENTER, self.OnA)
def onA(self,event):
print "hello"
event.Skip()
我的問題是,如果用戶點擊別的地方用鼠標然後eveything作品。你好打印一次,這意味着發生了EVT_KILL_FOCUS
。 但如果使用按回車比你好打印兩次。這意味着EVT_KILL_FOCUS
和EVT_TEXT_ENTER
都發生了。我不想兩次完成事件。
我該怎麼辦?
這不是我的決定......它的客戶端請求。爲什麼要刪除event.Skip()? – java
'event.Skip()'告訴它繼續處理除此之外的事件,在這種情況下,這是您需要的最後一件事。 –
它僅適用於在相同功能或一般事件中處理的事件嗎?說我也有self.a.Bind(wx.EVT_TEXT,self.OnB) – java