1.使得类继承于QAbstractNativeEventFilter(#include <QAbstractNativeEventFilter>)
2.添加槽函数
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *) Q_DECL_OVERRIDE;
3.在cpp中添加
#ifdef Q_CC_MSVC
#include <windows.h>
#endif
4.在cpp中添加代码注册热键
if (RegisterHotKey((HWND)this->winId(), 100, MOD_CONTROL, 'G') == false)
{
QMessageBox::information(this, "Error", "HOT Key Error", QMessageBox::Ok);
}
5.在cpp中添加实现代码
bool QtSculput::nativeEventFilter(const QByteArray &eventType, void *message, long *result)
{
if (eventType == "windows_generic_MSG")
{
MSG *msg = (MSG*)message;
if (msg->message == WM_HOTKEY && msg->wParam == 100 )
{
//your code
}
return true;
}
return false;
}
代码来源:万安平 ,博主搬上网而已
感谢。