web-dev-qa-db-ja.com

USBイベント(挿入と削除)を検出するQtソリューションはありますか?

他の何人かが数年前にここですでに尋ねたように、pendrive/datatravelerが接続されているとき、およびそれが私のシステム(Linux UbuntuとEmbedded Linuxの両方)から外されているときをQtアプリケーションで検出できるようにしたいと思います。

私はSOで検索しましたが、ほとんどの回答が(2010などから)古くなっているだけでなく、すべての解決策がこれらの問題に対する「非Qt解決策」を含んでいることに気付きました:プラットフォーム固有またはudevやDBusなどの外部ライブラリの使用。

まず最初に知りたいのは、このための特定のQtソリューションがあるかどうか、つまり、外部ライブラリやプラットフォーム固有のコードを追加することなくこれを行う方法と、それをどのように使用できるかです。優先的には、Qt 4.8ですでに利用可能になっているはずです。 Qtソリューションがない場合は、Qtベースのライブラリを使用できます。

追加:検索結果:

13
Momergil

すでに指摘したように、Qt自体はそのようなモジュールを提供していません。ただし、QDeviceWatcherというユーザー作成クラスがあります。私は個人的にそれを使った経験がなく、定期的に更新されていませんが、試してみることができます。

フォーラムの投稿 here とgitリポジトリ here を見つけることができます。

7
Bowdzone

QtにはそのようなAPIはありませんが、プラットフォームごとの libusb の実装を続けることができます。これは非常に素晴らしいことです。

5

もう1つのヒント:

libusbxは、USBデバイスへの一般的なアクセスを提供するライブラリであるlibusbのフォークでした。 2014.01.26の時点で、このプロジェクトはlibusbに完全にマージされ、中止されています。 libusbxの今後のリリースはないため、libusbの使用に切り替えることを強くお勧めします。 ----- from http://libusbx.org/ から

3
logic