如何在QT中添加自定义应用程序

How do I add a custom ApplicationShortcut in Qt

本文关键字:添加 自定义 应用程序 QT      更新时间:2023-10-16

我有以下代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    mUi(new Ui::MainWindow)
{
    mUi->setupUi(this);
    this->setFixedSize(this->width(), this->height());
    StyleUi();
    auto closeAct = new QAction(this);
    closeAct->setShortcut(QKeySequence("Ctrl+O"));
    connect(closeAct, SIGNAL(activated()), this, SLOT(close()));
    closeAct->setShortcutContext(Qt::ApplicationShortcut);
    addAction(closeAct);
}

最后5行定义了由序列ctrl o创建的快捷方式定义QATICE,将QACTION连接插槽闭合()。我在Stackoverflow上找到了此示例,其他几个文档网站描述了我想做的事情。但是,我什么都没到。当我击中CTRL O时,我的程序不会关闭。关于我在哪里做错事的任何建议?

您可以使用Qkey sequence的多个参数构造函数来创建它。

这样:

QShortcut *shortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_O), this);
shortcut->setContext(Qt::ApplicationShortcut);

并尝试以qshortcut信号激活:

connect(shortcut, &QShortcut::activated, this, &MainApp::activeShortcut);
void MainApp::activeShortcut()
{
    this->close();
}

这是您在GitHub上下载的问题的示例项目。