2017-01-09 31 views
0

我在使用Qt快捷鍵時遇到了一些問題。我將我的問題提取到我在此處報告的一段簡單代碼中。 在我的代碼,我希望我的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上做到這一點?