如何捕捉鼠标和键盘操作

时间:2015-01-17 12:25:53

标签: c++ qt events keyboard mouse

使用Qt。从整个系统中的每个键中捕获事件。

我知道win API可以做到这一点,但qt如何编码。我的意思是在没有钩子的情况下做它,它可以在多个系统中运行。

能做到吗?可能不是吗?

1 个答案:

答案 0 :(得分:3)

Qt中没有实现全局快捷方式。但作为替代方案,您可以使用Qxt。 Qxt是Qt的扩展库,提供了一套跨平台的实用程序类,用于添加Qt中不易获得的功能。它具有全局快捷键(热键),即使应用程序被最小化或隐藏,也可以检测按键。

编译Qxt后,通过将这些应用程序添加到.pro:

链接您的应用程序
CONFIG += qxt
QXT = core gui

并加入QxtGlobalShortcut

#include <QxtGlobalShortcut>

使用示例:

QxtGlobalShortcut* shortcut = new QxtGlobalShortcut(window);
connect(shortcut, SIGNAL(activated()), window, SLOT(toggleVisibility()));
shortcut->setShortcut(QKeySequence("Ctrl+Shift+F"));

现在,当您按下该特定键序列时,即使您的应用程序被最小化或隐藏,也会调用该插槽。

不幸的是这个项目不再维护了,用Qt 5编译它可能会遇到很多困难。*。但是您可以看到源代码的特定部分,并仅使用应用程序中的相关部分。