QDBusAbstractAdaptor Class

QDBusAbstractAdaptorクラスは、D-Busアダプタ・クラスの基本クラスです。詳細...

ヘッダー #include <QDBusAbstractAdaptor>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
継承: QObject

パブリック関数

保護された関数

QDBusAbstractAdaptor(QObject *obj)
bool autoRelaySignals() const
void setAutoRelaySignals(bool enable)

マクロ

詳細説明

QDBusAbstractAdaptorクラスは、D-Busを使用して外部へのインタフェースを提供しようとするすべてのオブジェクトの出発点です。これは、QDBusAbstractAdaptor から派生した 1 つ以上のクラスを通常のQObject にアタッチし、そのQObjectQDBusConnection::registerObject に登録することで実現します。QDBusAbstractAdaptorオブジェクトは軽量なラッパーであることを意図しており、ほとんどの場合、実際のオブジェクト(その親)への呼び出しとそこからのシグナルを中継するだけです。

各 QDBusAbstractAdaptor 派生クラスは、クラス定義のQ_CLASSINFO マクロを使用して、実装する D-Bus インタフェースを定義する必要があります。この方法で公開できるインターフェイスは 1 つだけであることに注意してください。

QDBusAbstractAdaptor は、シグナル、スロット、プロパティの標準的なQObject メカニズムを使用して、バスにエクスポートするシグナル、メソッド、プロパティを決定します。QDBusAbstractAdaptorから派生したクラスが発するシグナルは、オブジェクトが登録されているD-Busコネクションを通して自動的に中継されます。

QDBusAbstractAdaptor から派生したクラスは、new 演算子を使用してヒープ上に作成する必要があり、ユーザが削除してはなりません(接続先のオブジェクトが削除されると自動的に削除されます)。

アダプタの使用と QDBusConnectionも参照してください

メンバ関数のドキュメント

[explicit protected] QDBusAbstractAdaptor::QDBusAbstractAdaptor(QObject *obj)

obj を親オブジェクトとして QDBusAbstractAdaptor を構築します。

[virtual noexcept] QDBusAbstractAdaptor::~QDBusAbstractAdaptor()

アダプターを破壊する。

警告 アダプタは、それが参照している実オブジェクトが破壊されると自動的に破壊される。アダプタを自分で削除しないでください。

[protected] bool QDBusAbstractAdaptor::autoRelaySignals() const

実オブジェクトからの自動シグナル中継(object()参照)が有効な場合はtrue を返し、そうでない場合はfalse を返す。

setAutoRelaySignals()も参照

[protected] void QDBusAbstractAdaptor::setAutoRelaySignals(bool enable)

実オブジェクトからのシグナルの自動中継を切り替えます(object()を参照)。

シグナルの自動中継は、両方のクラスで全く同じメソッドシグネチャを持つ親のシグナルのシグナル間接続で構成されます。

enable を true に設定するとシグナルを接続し、false に設定するとすべてのシグナルを切断します。

autoRelaySignals()も参照

マクロ・ドキュメント

Q_NOREPLY

Q_NOREPLYマクロは、呼び出されるメソッドをマークし、QDBusInterface::call()から戻る前にそのメソッドの処理が終了するのを待たないようにするために使用できる。呼び出されたメソッドはいかなる出力引数も返すことはできず、もし返すとしても、そのような引数はすべて破棄されます。

このマクロは、例のようにクラス宣言でメソッドの戻り値("void "でなければならない)の前に置くことで、自分のアダプタで使用することができます:

Q_NOREPLY void myMethod();

メソッドの実装 (クラス宣言の外側) でのこのマクロの使用は任意です。

Qt D-Bus アダプタの使用法も参照してください

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.