問題タブ [qtdbus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dbus - Qtdbus を使用してシステム バスでメソッドを公開する方法
Qt Creator で Qt Dbus を使用して、アプリケーションのメソッドをシステム バスに公開したいと考えています。セッションバスの使用中にメソッドが公開されますが、システムバスでは、登録したサービス名しか表示されず、その下に公開されるメソッドはありません.(私はDフィートで確認しています)どうすればよいですか? ?
c++ - QtDbusを使用してインターフェースを登録し、メソッドを登録する方法は?
インターフェイスとメソッドを QtDbus に登録したい。
glib Dbus には、メソッド g_dbus_register_interface(.. ,.. , .., ..) があります。
QtDbus を使用して同じことを行う方法はありますか?
qt4 - Linux/MIPS 用の QtDbus アプリケーションのクロスコンパイル
Linux/MIPS デバイス用に dbus-chat の例 (qt-everywhere-opensource-src-4.6.2 に含まれています) をクロスコンパイルしようとしています。ビルド中に次のエラーが発生します。
.../qt-everywhere-opensource-src-4.6.2/lib/libQtCore.so: 「inotify_init@GLIBC_2.4」への未定義の参照
.../qt-everywhere-opensource-src-4.6.2/lib/libQtGui.so: `__floatundisf@GCC_4.2.0' への未定義の参照
.../qt-everywhere-opensource-src-4.6.2/lib/libQtCore.so: 「inotify_rm_watch@GLIBC_2.4」への未定義の参照
.../qt-everywhere-opensource-src-4.6.2/lib/libQtCore.so: 「inotify_add_watch@GLIBC_2.4」への未定義の参照
.../qt-everywhere-opensource-src-4.6.2/lib/libQtCore.so: `__floatundidf@GCC_4.2.0' への未定義の参照
collect2: ld が 1 つの終了ステータスを返しました
QT の dbus ライブラリをクロスコンパイルするために、mipsel-linux-gcc-3.4.4 と dbus-1.0.0 を使用しました。どのライブラリが欠落しているか、または dbus バージョンに互換性がない可能性があるかはわかりません。シンプルな dbus アプリケーションをコンパイルできます。
c++ - 複雑なデータを QtDBus 応答にパックする方法は?
Qt に DBus サービスを実装する必要があります。このサービスは、特定の仕様に従うかなり複雑なデータを返す必要があります。データは基本的に、テスト済みの一連のマップ、配列、構造、およびその他のバリアントです。
これらすべてをメソッドからの返信に詰め込む便利な方法が見つかりません。QDBusArgument
これにはクラスを使用できるはずです。たとえば、文字列の配列を作成するには、次のようにする必要があります。
しかし、それはうまくいきません。QList
手動でバリアントの sを苦労して構築する必要があるようです。確かにもっと良い方法がありますか?
qt - 同期qtdbus呼び出しを非同期に変換するために必要な設計提案
私のプロジェクトのアプリケーションは、これまで同期呼び出しを使用してqtdbusを介して通信していました。ただし、これらの呼び出しのいくつかを非同期に変換する必要があります。そのために、qtdbus QDBusAbstractInterface :: callWithCallbackで利用可能なこのAPIを使用することを選択しましたが、問題は、現在の実装では、これらのqtdbus同期呼び出しがコード内の多くの場所に散在しており、これらの同期呼び出しに続くコードスニペットが制御を前提としていることです。前のコールが正常に処理され、応答が取得された場合にのみ、それらに到達します。これは、呼び出しが非同期に変更された場合には当てはまりません。さらに、呼び出しはさまざまなコンテキストで行われるため、各qtdbus呼び出しの前にシステムの状態を維持する必要があります。これにより、応答を受信したときに何をすべきかがわかります。現在のコードの構造を大きく破壊することなく、呼び出しを非同期に変換する可能性は本当にありますか?私が考えることができる1つのアプローチは、FSMパターンを使用することです。ヒントやデザインの提案は大歓迎です。ありがとう!
python - PyQt4でQDBusAbstractAdaptorを使用してDBusのメソッドとプロパティを公開するにはどうすればよいですか?
PyQt4、特に QtDBus を使用して、DBus で基本的なコードを実行しようとしています。PyQt4 の Python3 バージョンを使用しています。Qt (c++) で実行したいコードを既に取得していますが、Python のみを使用して同様のコードを実行したいと考えています。他の Python コードを呼び出せるように、メソッド、シグナル/スロット、およびプロパティを DBus に公開したいと考えています。
Qt では、Q_CLASSINFO マクロ/関数を使用して DBus イントロスペクションを行います。Q_CLASSINFO メソッドを取得しましたが、同じタイプの機能を生成することができません。私が知る限り、Q_CLASSINFO メソッドに関するドキュメントはまったくないため、別の方法があるかどうかはわかりません。D-Feetを使用すると、自動的に公開されるメソッドがないことがはっきりとわかるので、ちょっと行き詰まっています。
これが私がこれまでに持っているものです。
私のこの大規模なプロジェクトをどのように構築したいかという理由で、C++ で QtDBus を使用するのが本当に好きですが、DBus 経由でアクセスするオブジェクトを Python3 で作成する必要があります。
pyqt4 - PyQt4でQDBusPendingCallWatcherの結果を処理しますか?
PyQt4.QtDBus を使用して、リモート D-Bus サービスの関数をノンブロッキングで呼び出したいと考えています。Qt の C++ ドキュメントを参考にして、次のテスト プログラムを作成しました。
うまくいくようです。実行すると、次のように出力されます。
問題は、 を結果を抽出できるQDBusPendingCallWatcher
もの (例: )に変換する方法がわからないことです。C++ ドキュメントQDBusMessage
の例では、これを行います。
C++ スロットを PyQt4 で動作するものに変換する方法を教えてもらえますか? (私は Qt 4.8.1 で PyQt4.9.1 を使用しています。)
qtdbus - qt-dbusを使用してdbusにエラーを返す方法は?
ソフトウェアからいくつかの API を公開するために qt-dbus を使用しています。
インターフェイス宣言のある foo.xml を qdbusxml2cpp 経由で foo_adaptor.cpp と FooAdaptor クラスを保持する foo_adaptor.h に変換し、Foo のコンストラクタ内で new FooAdaptor(this) を呼び出して実際の Foo クラスを FooAdaptor にバインドします。
dbus-send 経由でアプリにメッセージを送信すると、Foo メソッドが呼び出されます。
ソフトウェアの特定のビルドについて、いくつかのメソッドを無効にしたいと考えています。一部のメソッド呼び出しが実際には許可されておらず、何もしない/意味がないことを呼び出し元に通知する必要があります。これを行うために呼び出す/例外をスローする関数はありますか?
qt - QtDBus連携エラー
WinDBus を使用して Windows 上に Qt を構築しました。Qt 自体は正常にビルドされましたが、QDbus サンプルのビルドはメッセージで失敗しました
フォルダーE:\qt\4.6.4\msvc2008\lib
には、QtDBus4.dll QtDBus4.lib QtDBusd4.dll および QtDBusd4.lib が含まれます。すべてに'staticMetaObject@QDBusAbstractAdaptor@@2UQMetaObject@@B'
文字列が含まれます。
修正方法は?
事前に感謝します、イリヤ。
UPD: すべての .PRO ファイルは DBus の例からのもので、何も変更していません。例えば:
UPD2:
QtCreator が生成するコマンド ライン:
私がQtを構築したオプション:
qt - QDBusPendingCallWatcher を適切に使用するには?
QDBusPendingCallWatcher
非同期呼び出しを監視するために使用しようとしています。このようないくつかのサンプル コード:
およびハンドラー関数:
私の質問は次のとおりです。
内部で共有データ ポインターを
QDBusPendingCallWatcher
使用しているように見えますが、ポインターを手動で削除しない方が安全ですか? スコープを離れて忘れますか?watcher
pendingcall のスマート ポインターにすべてのトリックを実行させることができる場合
QDBusPendingCallWatcher
、クラス内のポインターを 1 つだけ使用して、すべての非同期呼び出しを監視できますか? このような:これは災害になりますか?または、呼び出しごとに複数のポインターを使用する必要がありますか?
ありがとう!