QT检测USB HID设备的拔插

文章讲述了在使用Qt编程时遇到的USBHID设备检测问题,作者发现nativeEvent函数无响应,尤其是在Qt6中参数类型改变后。通过调整nativeEvent的参数类型,使得函数能正确处理USBHID设备的拔插事件,但非HID设备仅能检测到动作。提供了完整工程链接供读者参考。
摘要由CSDN通过智能技术生成

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

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);

这个才能正常检测了。

如图:

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

完整工程:https://download.csdn.net/download/sinat_42513925/88034902https://download.csdn.net/download/sinat_42513925/88034902

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值