如何捕捉鼠标和键盘操作
How to catch the mouse&keyboard operation
使用 Qt。从整个系统中的每个键捕获事件。
我知道 win API 可以做到这一点,但是 qt 来编码怎么样。我的意思是不用钩子就可以做到,它可以在多个系统中 运行。
可以这样做吗?可能不行?
全局快捷方式未在 Qt 中实现。但作为替代方案,您可以使用 Qxt。 Qxt 是 Qt 的扩展库,提供了一套跨平台实用程序 类 来添加 Qt 中不可用的功能。它具有全局快捷方式(热键),即使应用程序被最小化或隐藏也能检测按键。
编译 Qxt 后,link 通过将这些添加到您的 .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.* 编译它时遇到很多困难。但是您可以查看源代码的特定部分,并在您的应用程序中只使用相关部分。
使用 Qt。从整个系统中的每个键捕获事件。
我知道 win API 可以做到这一点,但是 qt 来编码怎么样。我的意思是不用钩子就可以做到,它可以在多个系统中 运行。
可以这样做吗?可能不行?
全局快捷方式未在 Qt 中实现。但作为替代方案,您可以使用 Qxt。 Qxt 是 Qt 的扩展库,提供了一套跨平台实用程序 类 来添加 Qt 中不可用的功能。它具有全局快捷方式(热键),即使应用程序被最小化或隐藏也能检测按键。
编译 Qxt 后,link 通过将这些添加到您的 .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.* 编译它时遇到很多困难。但是您可以查看源代码的特定部分,并在您的应用程序中只使用相关部分。