QT检测USB HID设备的拔插

网上的参考代码很多,比如下面这个:

QT 检测hid设备拔插打印设备信息_qt hid打印机_研知电子的博客-CSDN博客

但是,参考了很多人的代码,写出来的发现检测不到USB HID设备的拔插。

明明其他人都可以正常使用,那问题应该是出在我这里了,

试了一下发现是Qt里重写的nativeEvent无响应,一直进入不到这个函数里面,

网上查找了一下,

一个是:nativeEvent只在窗口中有效

二是:在QT6中,nativeEvent的参数类型变了

#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
    virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result);
#else
    virtual bool nativeEvent(const QByteArray &eventType, void *message, long *result);
#endif

我改了一下使用bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result);

这个才能正常检测了。

如图:

QT检测USB HID设备的拔插_第1张图片

 拔插USB HID设备可以检测到具体信息。拔插USB但非HID设备,只能检测到动作。

完整工程:https://download.csdn.net/download/sinat_42513925/88034902icon-default.png?t=N658https://download.csdn.net/download/sinat_42513925/88034902

你可能感兴趣的:(qt,usb,hid)