1,mian.cpp 进行注册,代码如下:
/*< widget 窗口类注册*/
widget m_widget;
app.installEventFilter(m_widget);
2,窗口类重写nativeEventFilter()函数:
virtual bool nativeEventFilter(const QByteArray &eventType, void *message, long *);
3,pMsg->wParam中取对应的虚拟键值
bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
#ifdef Q_OS_WIN
if (eventType == "windows_generic_MSG")
{
MSG *msg = static_cast<MSG *>(message);
switch (msg->message)
{
case WM_KEYDOWN:
{
if (VK_F1 == msg->wParam)
{
qDebug() << "F1";
}
}
default:
break;
}
}
#endif
return false;/*< 交还给事件循环*/
}