QDBusReply Class
template <typename T> class QDBusReplyDie Klasse „QDBusReply“ speichert die Antwort auf einen Methodenaufruf an ein Remote-Objekt. Mehr...
| Header: | #include <QDBusReply> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
Öffentliche Funktionen
| 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) |
Ausführliche Beschreibung
QDBusReply<T> ist eine Template-Klasse, bei der T den erwarteten Rückgabetyp angibt. Ein QDBusReply-Objekt ist eine Teilmenge des QDBusMessage -Objekts, das die Antwort auf einen Methodenaufruf darstellt. Es enthält nur das erste Ausgabeargument oder den Fehlercode und wird von von QDBusInterface abgeleiteten Klassen verwendet, um die Rückgabe des Fehlercodes als Rückgabeargument der Funktion zu ermöglichen.
Es kann wie folgt verwendet werden:
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());Wenn der Remote-Methodenaufruf nicht fehlschlagen kann, können Sie die Fehlerprüfung überspringen:
reply = interface->call("RemoteMethod");Sollte der Aufruf unter diesen Bedingungen dennoch fehlschlagen, ist der von `QDBusReply<T>::value()` zurückgegebene Wert ein standardmäßig konstruierter Wert. Dieser ist möglicherweise nicht von einem gültigen Rückgabewert zu unterscheiden.
QDBusReply-Objekte werden für Remote-Aufrufe verwendet, die keine Ausgabeargumente oder Rückgabewerte haben (d. h., sie haben den Rückgabetyp „void“). Verwenden Sie die Funktion ` isValid()``, um zu prüfen, ob die Antwort erfolgreich war.
Siehe auch „ QDBusMessage “ und „ QDBusInterface “.
Dokumentation zu den Member-Funktionen
QDBusReply::QDBusReply(const QDBusError &error = QDBusError())
Erstellt eine Fehlerantwort anhand des von error angegebenen D-Bus-Fehlercodes.
QDBusReply::QDBusReply(const QDBusMessage &reply)
Erstelle automatisch ein QDBusReply-Objekt aus der Antwortnachricht „ reply “ und extrahiere dabei den ersten Rückgabewert, sofern es sich um eine erfolgreiche Antwort handelt.
QDBusReply::QDBusReply(const QDBusPendingCall &pcall)
Erstellt automatisch ein `QDBusReply`-Objekt aus dem asynchronen, ausstehenden Aufruf ` pcall`. Ist der Aufruf noch nicht abgeschlossen, ruft `QDBusReply` die Methode `QDBusPendingCall::waitForFinished()` auf, bei der es sich um einen blockierenden Vorgang handelt.
Wenn die Rückgabetypen übereinstimmen, extrahiert QDBusReply das erste Rückgabeargument aus der Antwort.
QDBusReply::QDBusReply(const QDBusPendingReply<T> &reply)
Erstellt ein QDBusReply-Objekt aus der ausstehenden Antwortnachricht „ reply “.
const QDBusError &QDBusReply::error() const
Gibt den Fehlercode zurück, der vom Remote-Funktionsaufruf zurückgegeben wurde. Wenn der Remote-Aufruf keinen Fehler zurückgegeben hat (d. h., wenn er erfolgreich war), ist das zurückgegebene QDBusError -Objekt kein gültiger Fehlercode (QDBusError::isValid() gibt „false“ zurück).
Siehe auch ` isValid()`.
bool QDBusReply::isValid() const
Gibt „ true “ zurück, wenn kein Fehler aufgetreten ist; andernfalls wird „ false “ zurückgegeben.
Siehe auch error().
QDBusReply<T>::Type QDBusReply::value() const
Gibt den Rückgabewert des Remote-Funktionsaufrufs zurück. Wenn der Remote-Aufruf einen Fehler zurückgegeben hat, ist der Rückgabewert dieser Funktion undefiniert und lässt sich möglicherweise nicht von einem gültigen Rückgabewert unterscheiden.
Diese Funktion ist nicht verfügbar, wenn der Remote-Aufruf „ void “ zurückgibt.
QDBusReply::operator QDBusReply<T>::Type() const
Gibt dasselbe Ergebnis zurück wie „ value()“.
Diese Funktion ist nicht verfügbar, wenn der Remote-Aufruf den Wert „ void “ zurückgibt.
QDBusReply<T> &QDBusReply::operator=(const QDBusError &dbusError)
Legt fest, dass dieses Objekt den von ` dbusError` zurückgegebenen Fehlercode enthält. Sie können später mit ` error()` darauf zugreifen.
QDBusReply<T> &QDBusReply::operator=(const QDBusMessage &reply)
Sorgt dafür, dass dieses Objekt die Nachricht „ reply “ enthält. Wenn „ reply “ eine Fehlermeldung ist, kopiert diese Funktion den Fehlercode und die Fehlermeldung in dieses Objekt
Ist „ reply “ eine Standardantwort und enthält mindestens einen Parameter, wird dieser in dieses Objekt kopiert, sofern er vom richtigen Typ ist. Ist er nicht vom gleichen Typ wie dieses „ QDBusError “-Objekt, setzt diese Funktion stattdessen einen Fehlercode, der auf eine Typinkongruenz hinweist.
QDBusReply<T> &QDBusReply::operator=(const QDBusPendingCall &pcall)
Sorgt dafür, dass dieses Objekt die Antwort enthält, die durch den ausstehenden asynchronen Aufruf ` pcall` festgelegt wurde. Falls der Aufruf noch nicht abgeschlossen ist, ruft diese Funktion `QDBusPendingCall::waitForFinished()` auf, um so lange zu warten, bis die Antwort eintrifft.
Wenn „ pcall “ mit einer Fehlermeldung endet, kopiert diese Funktion den Fehlercode und die Fehlermeldung in dieses Objekt
Wenn „ pcall “ mit einer Standardantwort abgeschlossen wurde und mindestens einen Parameter enthält, wird dieser in dieses Objekt kopiert, sofern er vom richtigen Typ ist. Ist er nicht vom gleichen Typ wie dieses „ QDBusError “-Objekt, setzt diese Funktion stattdessen einen Fehlercode, der eine Typinkongruenz anzeigt.
© 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.