如何添加在Qt的自定义ApplicationShortcut(How do I add a cust

2019-09-27 01:53发布

我有以下代码:

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的插槽关闭()。 我发现这个例子在这里计算器和其他一些文档站点形容我想要做的这样。 不过,我不是这个Anywhere入门。 我的程序不会关闭,当我按下Ctrl + O。 在哪里我做错了什么建议?

Answer 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上下载。



文章来源: How do I add a custom ApplicationShortcut in Qt
标签: c++ qt shortcut