2010-11-11 5 views
2

В моем приложении я хочу окно поиска, возможно, похожее на файл wx.SearchCtrl, с кнопкой поиска и кнопкой отмены. Я также хочу знать, когда пользователь нажимает Up или Вниз, так что я могу просмотреть результаты поиска. Когда я делаю демо с wx.TextCtrl я могу связать это событие, как этотwxPython: как прослушать EVT_KEY_DOWN на SearchCtrl?

self.textbox = wx.TextCtrl(self) 
self.textbox.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown, self.textbox) 

Но как только я меняю textbox к wx.SearchCtrl я больше не могу поймать событие. Могу ли я сделать привязку с wx.SearchCtrl или мне нужно реализовать мой textbox, чтобы он выглядел как один?

Если это важно, я разрабатываю Ubuntu (Gnome), и приложение должно хорошо работать как на Linux, так и на Windows.

+0

Как вы показываете результаты поиска? Вы используете меню SearchCtrl или пытаетесь использовать что-то еще? Какую версию wxpython вы используете? – Velociraptors

+0

Результаты поиска отображаются в отдельном ListBox. Я использую wxpython, включенный в репозитории Ubuntu. Не могу проверить версию сейчас, но я скоро поправлю. – phunehehe

+0

Точная версия 2.8.10.1 – phunehehe

ответ

0

Используйте другое событие, as per the docs.

self.textbox = wx.SearchCtrl(self, style=wx.TE_PROCESS_ENTER) 
self.Bind(wx.EVT_TEXT, self.OnKeyDown, self.textbox) 
+0

Они слишком разные. TE_PROCESS_ENTER только улавливает Enter, EVT_TEXT только улавливает ввод символов. Я хочу поймать вверх и вниз :( – phunehehe

+0

Вы можете получить ключ, который пользователь нажал в обработчике событий, и выполнить любую операцию, когда он соответствует ключу вверх. –

+0

Нет, связанный метод не вызван вообще, когда я нажимаю Up или Down (или влево или вправо, если это имеет значение). – phunehehe

1

Обходной, похоже, использует EVT_KEY_UP, т.е.

self.textbox.Bind(wx.EVT_KEY_UP, self.OnKeyUp, self.textbox) 

Однако этот способ, нажмите клавишу не повторяется (вы должны отпустить кнопку для того, чтобы событие для стрельбы). Я все еще ищу лучшие способы.

+0

Вы должны подать отчет об ошибке для wxPython для документирования этой проблемы – Velociraptors

 Смежные вопросы

  • Нет связанных вопросов^_^