正如其他一些人几年前在这里问过的那样,我希望能够在 Qt 应用程序中检测何时插入 pendrive/datatraveler 以及何时在我的系统中拔出它(在 Linux Ubuntu 和嵌入式 Linux 中)。
我在 SO 中进行了搜索,我注意到大多数答案不仅非常过时(例如从 2010 年开始),而且所有解决方案都以某种方式涉及这些问题的“非 Qt 解决方案”:特定于平台或使用 udev 和 DBus 等外部库.
我首先想知道的是是否有针对此的特定 Qt 解决方案,即无需添加外部库或平台特定代码即可做到这一点的方法,以及如何使用它。最好它应该已经在 Qt 4.8 中可用。如果没有 Qt 解决方案,那么基于 Qt 的库是可以接受的。
添加: 搜索结果:
- 使用 Qt 进行 USB 编程:建议使用 libusb 和 WinUSB API
- 在 Windows 上检测 Qt 中的 USB 通知:仅限 Windows
- 如何在 Linux 中检测 USB 驱动器插入? : 建议 libudev
- 如何在 linux/Qt 下获取 USB 通知? : 建议使用 DBus
- 如何知道 Qt 中何时连接了新的 USB 存储设备? : 仅限 Windows
- 如何在 Linux/Qt/C++ 下检测 USB 设备断开连接:仅限 Linux,建议使用 HAL、DeviceKit 和 udev
- 是否有 C++ 跨平台 USB 库? : 建议使用 libusbx
原文由 Momergil 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如已经指出的,Qt 本身并不提供这样的模块。然而,有一个名为
QDeviceWatcher
的用户自定义类。我个人没有经验,也没有定期更新,但你可以试一试。您可以在 此处 找到论坛帖子和 此处 的 git 存储库。