【发布时间】:2012-05-30 21:05:32
【问题描述】:
我正在使用带有下拉菜单的 SearchCtrl,但我遇到了一些事件问题。当我点击搜索按钮旁边的小箭头 时,EVT_SEARCHCTRL_SEARCH_BTN 被触发,这不是我想要的。我只希望在我点击一个项目后触发EVT_MENU_RANGE,而不是在我点击它之前触发EVT_SEARCHCTRL_SEARCH_BTN。
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,但这不会导致问题。当我注释掉搜索按钮绑定时,代码按预期工作。
更新
显然这不是问题,而是 searchctrl 的“功能”。我尝试了 wxpython 演示,如果我只是单击搜索按钮而不是箭头,菜单也会出现。它显然是一个按钮,而不是我认为的两个按钮。
有没有办法完成我最初的要求?是否必须手动修改textctrl,还是有其他解决方案?
【问题讨论】: