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

时间:2015-04-02 13:34:49

标签: c++ qt usb

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

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

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

添加:搜索结果:

3 个答案:

答案 0 :(得分:7)

正如已经指出的那样,Qt本身并不提供这样的模块。但是有一个名为QDeviceWatcher的用户自定义类。我个人没有经验,也没有定期更新,但你可以尝试一下。

您可以找到论坛帖子here和git信息库here

答案 1 :(得分:4)

在Qt中没有这样的API,但你可以继续使用libusb的一些平台式实现,这非常棒。

答案 2 :(得分:3)

再多一个提示:

  

libusbx是libusb的一个分支,libusb是一个提供对USB设备的通用访问的库。   截至2014.01.26,该项目已完全合并回libusb,现已停产。   由于不会再发布libusbx,因此强烈建议您切换到使用libusb。 -----来自http://libusbx.org/