有一个需求,就是在应用在后台运行时,用户可以通过快捷键将应用唤起。或者应用响应。
其实就是全局快捷键的功能。
这个功能利用了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)