c++ - 检测大写锁定按键

标签 c++ qt

我正在使用

QShortcut* capsKey = new QShortcut (Qt::Key_CapsLock,      this, SLOT(keyCaps() ));

但是,只有在大写锁定启用时(大写锁定 LED 打开)才会每隔一次检测到该信号 - 而在禁用时(大写锁定 LED 关闭)则不会检测到该信号

如何检测另一个键? 谢谢

[我在 2014 年 MacBook Pro 上使用 Qt5.4]

最佳答案

大写锁定键可能很有趣。我不知道到底发生了什么,但可以做出一些猜测。

在某些早期的 Mac 键盘上,大写锁定键在按下时会被物理锁定,因此只有在第二次按下该键时才会生成释放代码。没有物理锁的键盘的后续按键处理程序可能会模拟相同的行为(以便期望它的旧应用程序仍然可以工作)。你的程序将得到的是按下,然后当第二次按下锁定键时释放。如果是这种情况,则只需检测一次按键,而不是两次。

某些平台允许用户在不按大写锁定键(通常通过按 Shift 键)的情况下关闭大写锁定。在这些系统中,可能根本不会出现第二次点击。

关于c++ - 检测大写锁定按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323432/

相关文章:

c++ - 更改或替代系统提示音?

c++ - 模板化函数指针解释

c++ - 插槽后 Qt 访问冲突 0xC0000005

c++ - 小四元数相机错误? (在 Z 轴上略微旋转)

c++ - 如果我使用 scanf 程序终止

c++ - 我究竟该如何使用 Boost?

c++ - 如何使用插槽实时更新 paint()

c++ - QWizard会删除QWizardPage还是会泄露?

c++ - qwt plot曲线轴不可见

c++ - 如何检测我的应用程序在 Qt 中失去焦点?