是否有用于检测 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 的库也是可以接受的。
添加:搜索结果:
- USB Programming with Qt: 建议使用 libusb 和 WinUSB API
- Detecting USB notification in Qt on windows:仅Windows
- How do I detect usb drive insertion in Linux?: 建议使用 libudev
- How to get USB notifications under linux / Qt?:建议DBus
- How to know when a new USB storage device is connected in Qt?:仅Windows
- How to detect USB device disconnect under Linux/Qt/C++:仅 Linux,建议 HAL、DeviceKit 和 udev
- Is there a C++ cross platform USB library?: 建议使用 libusbx
Qt 中没有这样的 API,但是您可以继续 libusb 的一些平台实现,这非常棒。
正如已经指出的那样,Qt 本身不提供这样的模块。然而,有一个名为 QDeviceWatcher
的用户创建的 class。我个人没有这方面的经验,也没有定期更新,但你可以试一试。
还有一个提示:
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/
正如其他一些人几年前在这里问过的那样,我希望能够在 Qt 应用程序中检测 pendrive/datatraveler 何时插入以及何时拔出我的系统(都在 Linux Ubuntu 和嵌入式 Linux)。
我在 SO 中搜索,我注意到大多数答案不仅非常过时(例如从 2010 年开始),而且所有解决方案都以某种方式涉及 "non-Qt solutions" 这些问题:特定于平台或外部库的使用,例如作为 udev 和 DBus。
我首先想知道的是是否有针对此的特定 Qt 解决方案,即无需添加外部库或平台特定代码即可执行此操作的方法,以及我如何使用它。最好它应该已经在 Qt 4.8 中可用。如果没有 Qt 解决方案,那么基于 Qt 的库也是可以接受的。
添加:搜索结果:
- USB Programming with Qt: 建议使用 libusb 和 WinUSB API
- Detecting USB notification in Qt on windows:仅Windows
- How do I detect usb drive insertion in Linux?: 建议使用 libudev
- How to get USB notifications under linux / Qt?:建议DBus
- How to know when a new USB storage device is connected in Qt?:仅Windows
- How to detect USB device disconnect under Linux/Qt/C++:仅 Linux,建议 HAL、DeviceKit 和 udev
- Is there a C++ cross platform USB library?: 建议使用 libusbx
Qt 中没有这样的 API,但是您可以继续 libusb 的一些平台实现,这非常棒。
正如已经指出的那样,Qt 本身不提供这样的模块。然而,有一个名为 QDeviceWatcher
的用户创建的 class。我个人没有这方面的经验,也没有定期更新,但你可以试一试。
还有一个提示:
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/