Qt快捷键有一些问题。我将问题提取到我在这里报告的简单代码中。
在我的代码中,我希望在按键盘上的CTRL + SHIFT + A组合键时执行EmptyMainWindow::onShortcutActivated()
这是我的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:我正在使用Visual Studio编译器在Windows 7上工作

谢谢

最佳答案

我找到了原因。得益于名为Windows Hotkey Explorer的软件,该软件提供了已注册到操作系统的所有快捷方式,我发现另一个程序可以保留此快捷方式,因此没有将其传递给我的应用程序。您对在Windows上如何做到这一点有任何想法吗?

09-04 00:27