wxPython:如何在SearchCtrl上听EVT_KEY_DOWN?

时间:2010-11-11 15:57:22

标签: python wxpython search-box

在我的应用程序中,我想要一个搜索框,可能与wx.SearchCtrl提供的搜索框一样,包括搜索按钮和取消按钮。我还想知道用户何时按 Up Down ,以便我可以浏览搜索结果。当我使用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 个答案:

答案 0 :(得分:1)

解决方法似乎是使用EVT_KEY_UP,即

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

然而,这样按键不可重复(您必须释放键才能触发事件)。我还在寻找更好的方法。

答案 1 :(得分:0)

使用其他活动as per the docs

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