wxPython: как слушать EVT_KEY_DOWN на SearchCtrl? - PullRequest
2 голосов
/ 11 ноября 2010

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

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.

Ответы [ 2 ]

1 голос
/ 13 ноября 2010

Обходное решение, кажется, использует EVT_KEY_UP, то есть

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

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

0 голосов
/ 11 ноября 2010

Используйте другое событие, согласно документам .

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