Qt项目添加全局热键
前言
初始项目结构如下:
1 | demo.pro |
添加全局热键及函数
修改 widget.h 添加热键支持
1 |
|
修改 widget.cpp 实现热键逻辑
1 |
|
修改 .pro 文件(关键配置)
1 | # 添加Windows API库链接(必须) |
检查 main.cpp(无需修改)
1 |
|
关键实现原理
热键配置集中管理:
使用结构体
HotkeyConfig存储以下信息:1
2
3
4
5
6struct HotkeyConfig {
int id; // 唯一标识符
UINT modifiers; // 修饰键(Ctrl/Alt/Shift等)
UINT key; // 主键(字母或功能键)
std::function<void()> handler; // 处理函数
};通过
m_hotkeys列表统一管理所有热键配置
自动注册/注销机制:
showEvent中遍历注册所有热键closeEvent中遍历注销所有热键- 新增热键只需修改
m_hotkeys列表
统一消息处理:
- 在
nativeEvent中通过循环匹配热键ID - 使用
std::function直接绑定处理函数
- 在
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Meng's blog!