我是Qt和高级编程的新手。在我的项目中,我有一个QKeySequence
快捷键 CTRL + PLUS 和 CTRL + MINUS 键。它们在数字 PLUS 和 MINUS 键中可以正常工作,但是,如果在用于德国和意大利键盘布局的OEM PLUS和MINUS键中使用它们,则不会触发所需的操作。我在带有KeyPressEvent()
的简单程序中测试了它们,以打印调试消息,但仍然没有触发操作。我使用了nativeVirtualKey()
,并且能够打印调试消息。我使用了Qt 5.5.0和5.5.1,并使用Windows屏幕键盘对其进行了测试。对于没有数字键的键盘,是否仍然可以在QKeySequence
中使用 CTRL + + 快捷方式。
Qt Creator中还面临着同一问题的另一个观察结果。用于增加字体大小的 CTRL + PLUS 快捷键在德语键盘中不起作用,对于丹麦语键盘,它是 CTRL + MINUS < / kbd>无效。
QKeySequnce
:
const QKeySequence g_markerIncrease = QKeySequence(CTRL + Key_Plus);
这就是我使用nativevirtualkey()
的方式:
if ( event->nativeVirtualKey() == 187 ) //virtualkeycode for Non numeric PLUS
{
qDebug() << "message";
}
编辑1: 187是VK List
中suggestion in Qt centre forum中VirtualKey十六进制值的整数值