是否有用于检测 USB 事件(插入和移除)的 Qt 解决方案?

Is there a Qt solution for detecting USB events (insertion and removal)?

正如其他一些人几年前在这里问过的那样,我希望能够在 Qt 应用程序中检测 pendrive/datatraveler 何时插入以及何时拔出我的系统(都在 Linux Ubuntu 和嵌入式 Linux)。

我在 SO 中搜索,我注意到大多数答案不仅非常过时(例如从 2010 年开始),而且所有解决方案都以某种方式涉及 "non-Qt solutions" 这些问题:特定于平台或外部库的使用,例如作为 udev 和 DBus。

我首先想知道的是是否有针对此的特定 Qt 解决方案,即无需添加外部库或平台特定代码即可执行此操作的方法,以及我如何使用它。最好它应该已经在 Qt 4.8 中可用。如果没有 Qt 解决方案,那么基于 Qt 的库也是可以接受的。

添加:搜索结果:

Qt 中没有这样的 API,但是您可以继续 libusb 的一些平台实现,这非常棒。

正如已经指出的那样,Qt 本身不提供这样的模块。然而,有一个名为 QDeviceWatcher 的用户创建的 class。我个人没有这方面的经验,也没有定期更新,但你可以试一试。

您可以找到论坛 post here and the git repository here.

还有一个提示:

libusbx was a fork of libusb, a library that provides generic access to USB devices. As of 2014.01.26, this project has been fully merged back into libusb and is being discontinued. Since there will be no further releases of libusbx, you are strongly encouraged to switch to using libusb. -----from https://web.archive.org/web/20150519101032/http://libusbx.org/