0
我正在使用帶有下拉菜單的SearchCtrl,並且遇到了一些事件問題。當我點擊搜索按鈕旁邊的小箭頭時,觸發了
EVT_SEARCHCTRL_SEARCH_BTN
,這不是我想要的。我只想在點擊一個項目後觸發EVT_MENU_RANGE
,而不是在點擊它之前觸發EVT_SEARCHCTRL_SEARCH_BTN
。wxpython SearchCtrl觸發兩個事件
self.search_ctrl = wx.SearchCtrl(self.panel_1, -1,
style=wx.TE_PROCESS_ENTER)
self.search_menu = wx.Menu()
self.search_items = {"text1":"value1", "text2":"value2"}
for txt in self.search_items:
self.search_menu.Append(-1, txt)
self.search_ctrl.SetMenu(self.search_menu)
self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, self.search, self.search_ctrl)
self.Bind(wx.EVT_MENU_RANGE, self.onSearchMenu)
儘管我應該添加id到菜單綁定,這不會導致問題。代碼在我註釋掉搜索按鈕綁定時按預期工作。
UPDATE
顯然,這不是一個問題,但searchctrl的 '功能'。我嘗試了wxpython演示,菜單也出現了,如果我只點擊搜索按鈕,而不是箭頭。這顯然是一個按鈕,而不是我認爲的那兩個按鈕。
有沒有辦法完成我原來的要求?我必須手動修改一個textctrl,還是有其他解決方案?
沒有,菜單綁定是沒有問題的。當我註釋掉搜索按鈕綁定代碼正常工作。 – BrtH
什麼是self.search設置爲? –
如果您嘗試'self.search_ctrl.bind'而不是'self.Bind',會發生什麼?這個例子似乎建議你應該使用控件的綁定函數:http://nullege.com/codes/search/wx.EVT_SEARCHCTRL_SEARCH_BTN –