Определенные ярлыки не работают на QT

У меня есть некоторые проблемы с ярлыками Qt. Я выделил мою проблему в простой кусок кода, о котором я сообщаю здесь. В моем коде я хочу, чтобы мой EmptyMainWindow::onShortcutActivated() выполняется при нажатии комбинации клавиш CTRL + SHIFT + A на клавиатуре. Вот мой main.cpp

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    EmptyMainWindow w;
    w.show();

    return a.exec();
}

Вот мой класс EmptyMainWindow

#include "emptymainwindow.h"
#include "ui_emptymainwindow.h"
#include <QShortcut>
#include <QDebug>

EmptyMainWindow::EmptyMainWindow(QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::EmptyMainWindow)
{
      ui->setupUi(this);

      QShortcut *shortcut = new QShortcut (QKeySequence
                           (Qt::CTRL + Qt::SHIFT + Qt::Key_A  ), this);

      connect (shortcut, SIGNAL(activated()), this, SLOT(onShortcutActivated()));
 }



void EmptyMainWindow::onShortcutActivated()
{
    qDebug() << "EmptyMainWindow::onShortcutActivated()";
}

Теперь моя проблема заключается в том, что этот код не работает таким образом, но работает правильно, если это сочетание клавиш CTRL + SHIFT + B или CTRL + SHIFT + C и т. Д.

У вас есть идея, почему это происходит?

PS: я работаю на Windows 7 с компилятором visual studio

Спасибо

2 ответа

Решение

Я нашел причину. Благодаря программному обеспечению Windows Hotkey Explorer, которое предоставляет все ярлыки, которые были зарегистрированы в операционной системе, я обнаружил, что другая программа как бы зарезервировала этот ярлык и, таким образом, не была передана моему приложению. Есть ли у вас какие-либо идеи о том, как это можно сделать в Windows?

Возможно, это проблема QWERTY и AZERTY клавиатуры. Потому что как на C, так и на B есть одна и та же позиция, но нет A. Вы пытались запустить комбинацию клавиш с помощью сочетания клавиш CTRL+SHIFT+Q?

Другие вопросы по тегам