Momergil
Momergil

Reputation: 2281

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

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:

Upvotes: 15

Views: 26410

Answers (3)

Ian P Badtrousers
Ian P Badtrousers

Reputation: 389

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

Upvotes: 6

logic
logic

Reputation: 2477

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 https://web.archive.org/web/20150519101032/http://libusbx.org/

Upvotes: 4

Bowdzone
Bowdzone

Reputation: 3854

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.

Upvotes: 10

Related Questions