2

在我的应用程序中,我想要一个搜索框,可能类似于 提供的搜索框,其中wx.SearchCtrl包含搜索按钮和取消按钮。我还想知道用户何时按下UpDown,以便我可以浏览搜索结果。当我做一个演示时,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 上运行良好。

4

2 回答 2

1

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

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

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

于 2010-11-13T17:01:48.887 回答
0

根据 docs使用不同的事件。

self.textbox = wx.SearchCtrl(self, style=wx.TE_PROCESS_ENTER)
self.Bind(wx.EVT_TEXT, self.OnKeyDown, self.textbox)
于 2010-11-11T16:40:27.353 回答