特定快捷方式不适用于 QT

Specific shortcuts not working on QT

我在使用 Qt 快捷方式时遇到了一些问题。我将我的问题提取到我在这里报告的一段简单代码中。 在我的代码中,我希望在按下 CTRL + SHIFT + A[ 时执行 EmptyMainWindow::onShortcutActivated() =34=]键盘上的组合。 这是我的 main.cpp

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

    return a.exec();
}

这是我的 EmptyMainWindow Class

#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+ 则可以正常工作BCTRL+SHIFT+C等。

你知道为什么会这样吗?

PS:我正在使用 visual studio 编译器 Windows 7

谢谢

这可能是 QWERTY 和 AZERTY 键盘的问题。因为在 C 和 B 上都有相同的位置但 A 不同。您是否尝试使用 CTRL+SHIFT+[=12 触发快捷方式=]Q ?

找到原因了。多亏了一个名为 Windows Hotkey Explorer 的软件,它提供了所有已注册到操作系统的快捷方式,我发现另一个程序正在保留这个快捷方式,因此它没有传递给我应用。您知道如何在 Windows 上做到这一点吗?