2017-01-09 6 views
0

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

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 + В или CTRL +SHIFT + С и т. Д.

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

PS: Я работаю на Windows 7 с Visual Studio компилятор

Спасибо

+0

Вы уверены, что базовая ОС не использует ctrl + shift + a для своих целей? –

+0

Я тоже думал об этом, но как я могу увидеть, что все окна ярлыков подключаются? –

+0

Я лично не использую Windows, поэтому я не могу дать окончательный ответ. Однако [эта ссылка] (https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts#Text_formatting), похоже, предполагает, что ctrl + shift + a может быть подключен для редактирования текста. –

ответ

0

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

+0

Это не работает с этим ни –

1

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