【问题标题】:How do I add a custom ApplicationShortcut in Qt如何在 Qt 中添加自定义 ApplicationShortcut
【发布时间】:2017-09-06 09:48:48
【问题描述】:

我有以下代码:

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 行定义了一个 QAction,它使用从序列 Ctrl+O 创建的快捷方式,将 QAction 连接到插槽 Close()。我在 stackoverflow 上找到了这个示例,其他几个文档站点描述了我想要做的事情。但是,我对此一无所获。当我按下 Ctrl+O 时,我的程序没有关闭。关于我在哪里做错了什么有什么建议吗?

【问题讨论】:

    标签: c++ qt shortcut


    【解决方案1】:

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

    像这样:

    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 download here.提出的问题的示例项目

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多