Qt全局快捷键

QxtGlobalShortcut三方实现

  • 参考链接
  • 测试环境
  • vs配置QxtGlobalShortcut

参考链接

Qxt qxtglobalshortcut library qt5 compatibility Tested with qt5.4 on OSX 10.9.2, linux, windows (mingw and msvc)

测试环境

vs2019 + Qt5.14.2 + Qt插件

vs配置QxtGlobalShortcut

  • 项目属性配置
    C/C++ -> 附加包含目录:

    • .
    • qxtglobalshortcut5\gui
    • qxtglobalshortcut5\core
      预处理器:
    • BUILD_QXT_CORE
    • BUILD_QXT_GUI
  • 添加源文件

    • 添加需要的源文件即可
    • 可参考该图Qt全局快捷键_第1张图片
  • 测试代码

#include "shortcutDemo.h"
#include 
#include "qxtglobalshortcut.h"
#include 

shortcutDemo::shortcutDemo(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);

    // 全局快捷键
    QxtGlobalShortcut* globalShortcut = new QxtGlobalShortcut(this);
    bool ok = globalShortcut->setShortcut(QKeySequence(Qt::CTRL + Qt::ALT + Qt::Key_Right));
    if (ok) {
        qDebug() << "已注册改热键";
        connect(globalShortcut, &QxtGlobalShortcut::activated,
            [=]() {qDebug() << "shortcut activated"; });
    }
    else {
        qDebug() << "改热键已被注册";
    }

    // 本地快捷键
    QShortcut* localShortcut = new QShortcut(this);
    localShortcut->setKey(QKeySequence(Qt::CTRL + Qt::Key_Left));
    connect(localShortcut, &QShortcut::activated, [=] {qDebug() << "localShortcut activated"; });
}

你可能感兴趣的:(qt)