首页 > 解决方案 > 如何将 Qt 按钮映射到键盘按键

问题描述

我有一个带有多个以字符为名称的按钮的小部件。当我按下键盘上的一个字符时,我希望我的按钮处于活动状态(按下)。即,当我在键盘“Push_button_A”中按“a”时,应该按下。

标签: c++qtwidget

解决方案


有几种选择。

a)您可以安装和覆盖父小部件的事件过滤器并处理其中的按键事件。

b)或者您可以QShortcut为每个QPushButton对象添加对象并将它们的信号(QShortcut::activated)和插槽连接到按钮(QPushButton::click甚至更好QPushButton::animateClick)。

c) 或者您可以使用助记快捷方式...参见https://doc.qt.io/qt-5/qabstractbutton.html#shortcut-prophttps://doc.qt.io/qt-5/qabstractbutton。 html#shortcut-prop引用:“如果文本包含 & 字符 ('&'),则会自动为其创建一个快捷方式。'&' 后面的字符将用作快捷键。之前的任何快捷方式都将是“

选择哪种解决方案,这取决于有多少按钮,是否希望动态添加它们以及名称/字母将如何存储(它是硬编码的?还是以某种方式动态设置的?它取决于语言翻译?)。根据您的描述,我们对此的信息太少,因此我们无法告诉您该走哪条路。

PS:可能还有更多可能的解决方案,但这三个在我看来是最简单的。


推荐阅读