1

我是 Qt 和高级编程的新手。在我的项目中,我有一个QKeySequence快捷键CTRL+ PLUS& CTRL+MINUS键。它们在数字PLUSMINUS键中工作正常,但如果在用于德语和意大利语键盘布局的 OEM PLUS 和 MINUS 键中使用,它们不会触发所需的操作。我在一个简单的程序中测试了它们KeyPressEvent()以打印调试消息,但它仍然没有触发操作。我使用nativeVirtualKey()并且能够打印调试消息。我使用 Qt 5.5.0 和 5.5.1 并使用 Windows 屏幕键盘对其进行测试。无论如何,在没有数字键的键盘上使用CTRL++快捷键。QKeySequence

Qt Creator 面临同样问题的另一个观察结果。增加字体大小的CTRL+PLUS快捷键在德语键盘中不起作用,对于丹麦语键盘,它是CTRL+MINUS不起作用。

QKeySequnce

const QKeySequence g_markerIncrease = QKeySequence(CTRL + Key_Plus);

这就是我使用的方式nativevirtualkey()

if ( event->nativeVirtualKey() == 187 ) //virtualkeycode for Non numeric PLUS
{
    qDebug() << "message";
}

编辑 1:187 是VK 列表中 VirtualKey 十六进制值的整数值,根据Qt 中心论坛中的建议

4

0 回答 0