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上如何做到这一点有任何想法吗?