Ярлык QKeySequence 'CTRL + PLUS' не работает для раскладки клавиатуры на немецком языке
Я новичок в Qt и продвинутом программировании. В моем проекте у меня есть QKeySequence
сочетания клавиш CTRL + PLUS и CTRL + MINUS. Они отлично работают с цифровыми клавишами PLUS и MINUS, но не вызывают требуемых действий, если используются в клавишах 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 - это целочисленное значение шестнадцатеричного значения VirtualKey в Списке ВКонтакте согласно предложению на форуме Qt center