c++ - 如何将 Qt 按钮映射到键盘按键
问题描述
我有一个带有多个以字符为名称的按钮的小部件。当我按下键盘上的一个字符时,我希望我的按钮处于活动状态(按下)。即,当我在键盘“Push_button_A”中按“a”时,应该按下。
解决方案
有几种选择。
a)您可以安装和覆盖父小部件的事件过滤器并处理其中的按键事件。
b)或者您可以QShortcut
为每个QPushButton
对象添加对象并将它们的信号(QShortcut::activated
)和插槽连接到按钮(QPushButton::click
甚至更好QPushButton::animateClick
)。
c) 或者您可以使用助记快捷方式...参见https://doc.qt.io/qt-5/qabstractbutton.html#shortcut-prop和https://doc.qt.io/qt-5/qabstractbutton。 html#shortcut-prop引用:“如果文本包含 & 字符 ('&'),则会自动为其创建一个快捷方式。'&' 后面的字符将用作快捷键。之前的任何快捷方式都将是“
选择哪种解决方案,这取决于有多少按钮,是否希望动态添加它们以及名称/字母将如何存储(它是硬编码的?还是以某种方式动态设置的?它取决于语言翻译?)。根据您的描述,我们对此的信息太少,因此我们无法告诉您该走哪条路。
PS:可能还有更多可能的解决方案,但这三个在我看来是最简单的。
推荐阅读
- python - 如何在python中找到两个字符串之间的最长交点?
- c++ - 为什么人们使用原子交换而不是存储?
- c# - .Net-Core Controller 操作不会在模型中绑定子复杂类型
- c++ - OpenAL 从特定时间戳播放音频
- javascript - 在打字稿中访问类属性
- android - 如何在颤动中禁用返回、主页和最近按钮?
- python - 将图像数据从 pandas 加载到 pytorch
- ansible - 比较一个命令在多个主机中的输出,并根据输出仅在单个主机中运行后续任务
- angular - POST 方法后从 angular observable 获取响应值
- c++ - 类型别名与类型同名