linux实现全局快捷键+QT+热键

这篇博客介绍了如何在Linux环境下利用QT框架结合KF5GlobalAccel库创建全局快捷键。首先,需要在CMakeLists.txt中加载KF5GlobalAccel库。然后,通过定义QAction并设置objectName来响应快捷键消息。最后,使用KGlobalAccel::self()注册快捷键,例如‘Meta+Space’。完整源码可在提供的链接中查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


有一个需求,就是在应用在后台运行时,用户可以通过快捷键将应用唤起。或者应用响应。
其实就是全局快捷键的功能。
这个功能利用了linux操作系统中的dbus服务,在启动后将快捷键注册到操作系统中,然后系统响应对一个对应的快捷键调用对应的响应函数。
注册了全局快捷键以后会在~/.config/kglobalshortcutsrc 配置文件中填写相关的信息(注意一旦填写没法修改)
会出现这样一个问题就是如果其他用户已经注册了这个快捷键那么其他应用就不可能在使用这个快捷键,因此需修改这个配置文件。
在这里插入图片描述

第一步:加载KF5GlobalAccel库

本程序使用CMakeLists.txt方式加载qt程序。
cmakelists文件内容如下。可以看到我们使用find_package找到KF5GlobalAccel库并且在生成可执行程序的时候也需要关联对应的动态库。

cmake_minimum_required (VERSION 3.5 FATAL_ERROR)
project(GlobalShortCut)

# 一般当前目录设置为直接包含目录

set(CMAKE_INCLUDE_CURRENT_DIR ON)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三雷科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值