Skip to main content
 首页 » 编程设计

python之wxPython:如何在 SearchCtrl 上收听 EVT_KEY_DOWN

2025年05月04日15exmyth

在我的应用程序中,我想要一个搜索框,可能类似于 wx.SearchCtrl 提供的搜索框,其中包括搜索按钮和取消按钮。我还想知道用户何时按下 Up 或 Down,以便我可以浏览搜索结果。当我使用 wx.TextCtrl 制作演示时,我可以像这样绑定(bind)事件

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

但是一旦我将 textbox 更改为 wx.SearchCtrl 我就无法再捕捉到该事件。我可以使用 wx.SearchCtrl 进行绑定(bind),还是必须实现我的 textbox 以使其看起来像一个?

如果这很重要,我正在 Ubuntu (Gnome) 上开发,应用程序应该在 Linux 和 Windows 上都能正常运行。

请您参考如下方法:

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

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

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