Is there a Qt solution for detecting USB events (i

2020-02-08 06:32发布

As some other people already asked here some years ago, I want to be able to detect in a Qt application when a pendrive/datatraveler is plugged and when it is unplugged in my system (both in Linux Ubuntu and Embedded Linux).

I searched in SO and I noticed that most answers not only were very outdated (from 2010 for example), but all solutions somehow involved "non-Qt solutions" to these problem: either platform specific or usage of external libraries such as udev and DBus.

What I want to know first of all is if there is a specific Qt solution for this, i.e. a way to do this without requiring adding external libs or platform specific codes, and how could I use it. Preferentially it should already be available in Qt 4.8. If there is no Qt solution, then a Qt-based library would be acceptable.

Add: Search results:

标签: c++ qt usb
3条回答
成全新的幸福
2楼-- · 2020-02-08 07:13

As already pointed out, Qt itself does not provide such a module. There is however a user-made class called QDeviceWatcher. I have no experience with it personally and it is not updated regularly but you could give it a try.

You can find the forum post here and the git repository here.

查看更多
时光不老,我们不散
3楼-- · 2020-02-08 07:24

Just one more tip:

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 http://libusbx.org/

查看更多
甜甜的少女心
4楼-- · 2020-02-08 07:28

No such API in Qt, but you can go on with some platform-wise implementations of libusb, which is quite awesome.

查看更多
登录 后发表回答