Определенные ярлыки не работают на 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?