このページでは

QDBusReply Class

template <typename T> class QDBusReply

QDBusReply クラスは、リモートオブジェクトへのメソッド呼び出しに対する応答を格納します。詳細...

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

パブリック関数

QDBusReply(const QDBusError &error = QDBusError())
QDBusReply(const QDBusMessage &reply)
QDBusReply(const QDBusPendingCall &pcall)
QDBusReply(const QDBusPendingReply<T> &reply)
const QDBusError &error() const
bool isValid() const
QDBusReply<T>::Type value() const
operator QDBusReply<T>::Type() const
QDBusReply<T> &operator=(const QDBusError &dbusError)
QDBusReply<T> &operator=(const QDBusMessage &reply)
QDBusReply<T> &operator=(const QDBusPendingCall &pcall)

詳細な説明

QDBusReply<T> は、T が期待される戻り値の型を指定するテンプレートクラスです。QDBusReplyオブジェクトは、メソッド呼び出しの応答を表すQDBusMessage オブジェクトのサブセットです。これには最初の出力引数またはエラーコードのみが含まれており、QDBusInterface 派生クラスによって、関数の戻り値としてエラーコードを返すために使用されます。

以下の方法で使用できます:

QDBusReply<QString> reply = interface->call("RemoteMethod");
if (reply.isValid())
    // use the returned value
    useValue(reply.value());
else
    // call failed. Show an error condition.
    showError(reply.error());

リモートメソッド呼び出しが失敗しないことが確実な場合は、エラーチェックを省略できます:

reply = interface->call("RemoteMethod");

ただし、そのような条件下で失敗した場合、QDBusReply<T>::value() によって返される値はデフォルト構築された値となります。これは有効な戻り値と見分けがつかない場合があります。

QDBusReply オブジェクトは、出力引数や戻り値を持たない(つまり、戻り値の型が「void」である)リモート呼び出しに使用されます。応答が成功したかどうかをテストするには、isValid() 関数を使用してください。

QDBusMessage およびQDBusInterfaceも参照してください 。

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

QDBusReply::QDBusReply(const QDBusError &error = QDBusError())

error で指定された D-Bus エラーコードから、エラー応答を生成します。

QDBusReply::QDBusReply(const QDBusMessage &reply)

応答メッセージ `reply` から `QDBusReply` オブジェクトを自動的に生成し、成功応答の場合はそこから最初の戻り値を抽出します。

QDBusReply::QDBusReply(const QDBusPendingCall &pcall)

非同期の保留中の呼び出し `pcall` から、`QDBusReply` オブジェクトを自動的に生成します。呼び出しがまだ完了していない場合、`QDBusReply` は `QDBusPendingCall::waitForFinished()` を呼び出しますが、これはブロッキング操作です。

戻り値の型が patch の場合、QDBusReply は応答から最初の戻り値引数を抽出します。

QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)

保留中の応答メッセージ `reply` から、`QDBusReply` オブジェクトを生成します。

const QDBusError &QDBusReply::error() const

リモート関数呼び出しから返されたエラーコードを返します。リモート呼び出しがエラーを返さなかった場合(つまり、成功した場合)、返されるQDBusError オブジェクトは有効なエラーコードではありません(QDBusError::isValid()はfalseを返します)。

isValid()も参照してください 。

bool QDBusReply::isValid() const

エラーが発生しなかった場合は `true ` を返し、エラーが発生した場合は `false` を返します。

error()も参照してください 。

QDBusReply<T>::Type QDBusReply::value() const

リモート関数の呼び出しの戻り値を返します。リモート呼び出しがエラーで終了した場合、この関数の戻り値は未定義となり、有効な戻り値と見分けがつかない場合があります。

リモート呼び出しがvoid を返した場合、この関数は利用できません。

QDBusReply::operator QDBusReply<T>::Type() const

value() と同じ値を返します。

リモート呼び出しがvoid を返した場合、この関数は利用できません。

QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)

このオブジェクトに、dbusError によって返されたエラーコードを設定します。後でerror()を使用してこのエラーコードにアクセスできます。

QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)

このオブジェクトにreply メッセージを格納します。reply がエラーメッセージである場合、この関数はエラーコードとメッセージをこのオブジェクトにコピーします

reply が標準の応答メッセージであり、少なくとも1つのパラメータを含んでいる場合、そのパラメータが正しい型である限り、このオブジェクトにコピーされます。もしそのパラメータが、このQDBusError オブジェクトと同じ型でない場合、この関数は代わりに、型の不一致を示すエラーコードを設定します。

QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)

このオブジェクトに、保留中の非同期呼び出し `pcall` で指定された応答を格納します。呼び出しがまだ完了していない場合、この関数は `QDBusPendingCall::waitForFinished()` を呼び出し、応答が届くまでブロックします。

pcall がエラーメッセージを伴って終了した場合、この関数はエラーコードとメッセージをこのオブジェクトにコピーします。

pcall が標準の応答メッセージで終了し、かつ少なくとも 1 つのパラメータを含んでいる場合、そのパラメータが正しい型である限り、このオブジェクトにコピーされます。もしそのパラメータが、このQDBusError オブジェクトと同じ型でない場合、この関数は代わりに、型の不一致を示すエラーコードを設定します。

© 2026 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.