特定快捷方式不适用于 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+ 则可以正常工作B或CTRL+SHIFT+C等。
你知道为什么会这样吗?
PS:我正在使用 visual studio 编译器 Windows 7
谢谢
这可能是 QWERTY 和 AZERTY 键盘的问题。因为在 C 和 B 上都有相同的位置但 A 不同。您是否尝试使用 CTRL+SHIFT+[=12 触发快捷方式=]Q ?
找到原因了。多亏了一个名为 Windows Hotkey Explorer 的软件,它提供了所有已注册到操作系统的快捷方式,我发现另一个程序正在保留这个快捷方式,因此它没有传递给我应用。您知道如何在 Windows 上做到这一点吗?
我在使用 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+ 则可以正常工作B或CTRL+SHIFT+C等。
你知道为什么会这样吗?
PS:我正在使用 visual studio 编译器 Windows 7
谢谢
这可能是 QWERTY 和 AZERTY 键盘的问题。因为在 C 和 B 上都有相同的位置但 A 不同。您是否尝试使用 CTRL+SHIFT+[=12 触发快捷方式=]Q ?
找到原因了。多亏了一个名为 Windows Hotkey Explorer 的软件,它提供了所有已注册到操作系统的快捷方式,我发现另一个程序正在保留这个快捷方式,因此它没有传递给我应用。您知道如何在 Windows 上做到这一点吗?