2

我在嵌入式系统中处理 Qt 应用程序,我只有一个遥控器,其主键是 Key_space。

所以,我想要一个 QComboBox,您可以在按下 Key_space 按钮时在其上选择一个项目。

怎么做 ?也许我应该从 QComboBox 继承并重新定义 keyPressEvent ?

4

1 回答 1

2

如果 Qt 还没有处理这个(我认为它已经处理了,但可能是错误的),那么你需要做的不仅仅是处理组合框中的按键事件。当您为组合框选择项目时,将显示另一个窗口,其中包含项目列表。您需要以某种方式处理该窗口的按键事件。

为此,我建议从 继承,并在显示的弹出窗口上QComboBox安装一个事件过滤器showPopup()(查看、hidePopup()view()函数)。创建一个连接到highlighted信号的插槽,并跟踪突出显示的索引。然后,当弹出窗口获得空格键事件时,隐藏弹出窗口并将当前索引设置为最后突出显示的索引。

于 2010-10-12T15:42:12.497 回答