QDBusReply Class
template <typename T> class QDBusReplyQDBusReply 类存储对远程对象的方法调用的回复。更多
Header: | #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) | |
QDBusReply(const QDBusReply<T> &other) | |
const QDBusError & | error() const |
const QDBusError & | error() |
bool | isValid() const |
QDBusReply<T>::Type | value() const |
QDBusReply<T>::Type | 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> & | operator=(const QDBusReply<T> &other) |
详细说明
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(),这是一个阻塞操作。
如果返回类型修补,QDBusReply 将从回复中提取第一个返回参数。
QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)
从待处理回复信息reply 中构造一个 QDBusReply 对象。
QDBusReply::QDBusReply(const QDBusReply<T> &other)
构造other 的副本。
const QDBusError &QDBusReply::error() const
返回远程函数调用返回的错误代码。如果远程调用没有返回错误(即调用成功),则返回的QDBusError 对象将不是有效的错误代码(QDBusError::isValid() 将返回 false)。
另请参阅 isValid()。
const QDBusError &QDBusReply::error()
这是一个重载函数。
bool QDBusReply::isValid() const
如果没有错误发生,则返回true
;否则,返回false
。
另请参阅 error() 。
QDBusReply<T>::Type QDBusReply::value() const
返回远程函数调用的返回值。如果远程调用返回错误,则此函数的返回值未定义,可能与有效返回值无异。
如果远程调用返回void
,则此函数不可用。
QDBusReply<T>::Type 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 是标准回复信息,且至少包含一个参数,则只要参数类型正确,就会复制到此对象中。如果它与QDBusError 对象的类型不同,该函数将设置一个错误代码,表明类型不匹配。
QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)
使该对象包含由待处理异步调用pcall 指定的回复。如果调用尚未结束,该函数将调用 QDBusPendingCall::waitForFinished() 进行阻塞,直到回复到达。
如果pcall 以错误信息结束,此函数将把错误代码和信息复制到此对象中。
如果pcall 以标准回复消息结束,并且至少包含一个参数,只要参数类型正确,就会复制到此对象中。如果它与QDBusError 对象的类型不同,该函数将设置一个错误代码,表明类型不匹配。
QDBusReply<T> &QDBusReply::operator=(const QDBusReply<T> &other)
使该对象成为other 对象的副本。
© 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.