QDBusMessage Class
Die Klasse „QDBusMessage“ repräsentiert eine über den D-Bus-Bus gesendete oder empfangene Nachricht. Mehr...
| Header: | #include <QDBusMessage> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
Öffentliche Typen
| enum | MessageType { MethodCallMessage, SignalMessage, ReplyMessage, ErrorMessage, InvalidMessage } |
Öffentliche Funktionen
| QDBusMessage() | |
| QDBusMessage(const QDBusMessage &other) | |
(since 6.11) | QDBusMessage(QDBusMessage &&other) |
| ~QDBusMessage() | |
| QList<QVariant> | arguments() const |
| bool | autoStartService() const |
| QDBusMessage | createErrorReply(const QDBusError &error) const |
| QDBusMessage | createErrorReply(QDBusError::ErrorType type, const QString &msg) const |
| QDBusMessage | createErrorReply(const QString &name, const QString &msg) const |
| QDBusMessage | createReply(const QList<QVariant> &arguments = QList<QVariant>()) const |
| QDBusMessage | createReply(const QVariant &argument) const |
| QString | errorMessage() const |
| QString | errorName() const |
| QString | interface() const |
| bool | isDelayedReply() const |
| bool | isInteractiveAuthorizationAllowed() const |
| bool | isReplyRequired() const |
| QString | member() const |
| QString | path() const |
| QString | service() const |
| void | setArguments(const QList<QVariant> &arguments) |
| void | setAutoStartService(bool enable) |
| void | setDelayedReply(bool enable) const |
| void | setInteractiveAuthorizationAllowed(bool enable) |
| QString | signature() const |
| void | swap(QDBusMessage &other) |
| QDBusMessage::MessageType | type() const |
| QDBusMessage & | operator<<(const QVariant &arg) |
| QDBusMessage & | operator=(QDBusMessage &&other) |
| QDBusMessage & | operator=(const QDBusMessage &other) |
Statische öffentliche Elemente
| QDBusMessage | createError(const QDBusError &error) |
| QDBusMessage | createError(QDBusError::ErrorType type, const QString &msg) |
| QDBusMessage | createError(const QString &name, const QString &msg) |
| QDBusMessage | createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method) |
| QDBusMessage | createSignal(const QString &path, const QString &interface, const QString &name) |
| QDBusMessage | createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name) |
Ausführliche Beschreibung
Dieses Objekt kann jede der vier verschiedenen Arten von Nachrichten (MessageType) darstellen, die auf dem Bus auftreten können:
- Methodenaufrufe
- Methodenrückgabewerte
- Signalausgaben
- Fehlercodes
Objekte dieses Typs werden mit den statischen Funktionen ` createError()`, ` createMethodCall()` und ` createSignal()` erstellt. Verwenden Sie die Funktion ` QDBusConnection::send()`, um die Nachrichten zu senden.
Dokumentation zum Mitgliedstyp
enum QDBusMessage::MessageType
Die möglichen Nachrichtentypen:
| Konstante | Wert | Beschreibung |
|---|---|---|
QDBusMessage::MethodCallMessage | 1 | Eine Nachricht, die einen ausgehenden oder eingehenden Methodenaufruf darstellt |
QDBusMessage::SignalMessage | 4 | Eine Nachricht, die eine ausgehende oder eingehende Signalausgabe darstellt |
QDBusMessage::ReplyMessage | 2 | eine Nachricht, die die Rückgabewerte eines Methodenaufrufs darstellt |
QDBusMessage::ErrorMessage | 3 | eine Nachricht, die einen Fehlerzustand als Reaktion auf einen Methodenaufruf darstellt |
QDBusMessage::InvalidMessage | 0 | eine ungültige Nachricht: Dieser Wert wird bei von D-Bus empfangenen Nachrichten niemals gesetzt |
Dokumentation der Member-Funktionen
QDBusMessage::QDBusMessage()
Erstellt ein leeres, ungültiges QDBusMessage-Objekt.
Siehe auch createError(), createMethodCall() und createSignal().
QDBusMessage::QDBusMessage(const QDBusMessage &other)
Erstellt eine Kopie des durch ` other` angegebenen Objekts.
Hinweis: QDBusMessage-Objekte werden gemeinsam genutzt. Änderungen an der Kopie wirken sich auch auf das Original aus. Weitere Informationen finden Sie unter setDelayedReply().
[noexcept, since 6.11] QDBusMessage::QDBusMessage(QDBusMessage &&other)
Verschiebt „ other “ in dieses Objekt.
Hinweis: Das Objekt, aus dem verschoben wurde ( other ), befindet sich in einem teilweise initialisierten Zustand, in dem nur die Zerstörung und die Zuweisung eines neuen Werts zulässig sind.
Diese Funktion wurde in Qt 6.11 eingeführt.
[noexcept] QDBusMessage::~QDBusMessage()
Entsorgt das Objekt und gibt alle Ressourcen frei, die von diesem belegt waren.
QList<QVariant> QDBusMessage::arguments() const
Gibt die Liste der Argumente zurück, die an D-Bus gesendet werden sollen oder von D-Bus empfangen wurden.
Siehe auch setArguments().
bool QDBusMessage::autoStartService() const
Gibt das Flag für den automatischen Start zurück, wie es von setAutoStartService() gesetzt wurde. Standardmäßig ist dieses Flag auf „true“ gesetzt, was bedeutet, dass Qt D-Bus einen Dienst automatisch startet, sofern dieser nicht bereits läuft.
Siehe auch ` setAutoStartService()`.
[static] QDBusMessage QDBusMessage::createError(const QDBusError &error)
Erstellt eine neue DBus-Nachricht, die den angegebenen „ error “ darstellt.
[static] QDBusMessage QDBusMessage::createError(QDBusError::ErrorType type, const QString &msg)
Erstellt eine neue DBus-Nachricht für den Fehlertyp „ type “ unter Verwendung der Nachricht „ msg “. Gibt die DBus-Nachricht zurück.
[static] QDBusMessage QDBusMessage::createError(const QString &name, const QString &msg)
Erstellt eine neue DBus-Nachricht, die einen Fehler darstellt, mit den angegebenen Werten für „ name “ und „ msg “.
QDBusMessage QDBusMessage::createErrorReply(const QDBusError &error) const
Erstellt aus dem angegebenen „ error “-Objekt eine neue DBus-Nachricht, die eine Fehlerantwort darstellt.
QDBusMessage QDBusMessage::createErrorReply(QDBusError::ErrorType type, const QString &msg) const
Erstellt eine neue DBus-Antwortnachricht für den Fehlertyp „ type “ unter Verwendung der Nachricht „ msg “. Gibt die DBus-Nachricht zurück.
QDBusMessage QDBusMessage::createErrorReply(const QString &name, const QString &msg) const
Erstellt eine neue DBus-Nachricht, die eine Fehlerantwort darstellt, mit den angegebenen Werten für „ name “ und „ msg “.
[static] QDBusMessage QDBusMessage::createMethodCall(const QString &service, const QString &path, const QString &interface, const QString &method)
Erstellt eine neue DBus-Nachricht, die einen Methodenaufruf darstellt. Ein Methodenaufruf gibt stets seine Zieladresse an (service, path, interface und method).
Der DBus-Bus ermöglicht den Aufruf einer Methode an einem bestimmten Remote-Objekt ohne Angabe der Zielschnittstelle, sofern der Methodenname eindeutig ist. Wenn jedoch zwei Schnittstellen des Remote-Objekts denselben Methodennamen exportieren, ist das Ergebnis undefiniert (entweder wird eine der beiden aufgerufen oder es wird ein Fehler zurückgegeben).
Bei der Verwendung von DBus in einem Peer-to-Peer-Kontext (d. h. nicht auf einem Bus) ist der Parameter ` service ` optional.
Die Klasse ` QDBusInterface ` bietet eine einfachere Abstraktion für den synchronen Methodenaufruf.
Diese Funktion gibt ein ` QDBusMessage `-Objekt zurück, das mit ` QDBusConnection::call()` gesendet werden kann.
QDBusMessage QDBusMessage::createReply(const QList<QVariant> &arguments = QList<QVariant>()) const
Erstellt eine neue DBus-Nachricht, die eine Antwort darstellt, mit dem angegebenen ` arguments`.
QDBusMessage QDBusMessage::createReply(const QVariant &argument) const
Erstellt eine neue DBus-Nachricht, die eine Antwort darstellt, mit dem angegebenen ` argument`.
[static] QDBusMessage QDBusMessage::createSignal(const QString &path, const QString &interface, const QString &name)
Erstellt eine neue DBus-Nachricht mit den angegebenen Werten für „ path “, „ interface “ und „ name “, die eine Signalausgabe darstellt.
Ein DBus-Signal wird von einer Anwendung ausgesendet und von allen Anwendungen empfangen, die auf dieses Signal über diese Schnittstelle warten.
Das zurückgegebene QDBusMessage -Objekt kann mit der Funktion QDBusConnection::send() gesendet werden.
[static] QDBusMessage QDBusMessage::createTargetedSignal(const QString &service, const QString &path, const QString &interface, const QString &name)
Erstellt eine neue DBus-Nachricht mit den angegebenen Werten für „ path “, „ interface “ und „ name “, die eine Signalübertragung an ein bestimmtes Ziel darstellt.
Ein DBus-Signal wird von einer Anwendung ausgesendet und ausschließlich von der Anwendung empfangen, die den Zielnamen „ service “ besitzt.
Das zurückgegebene QDBusMessage -Objekt kann mithilfe der Funktion QDBusConnection::send() gesendet werden.
QString QDBusMessage::errorMessage() const
Gibt die für Menschen lesbare Meldung zurück, die mit dem empfangenen Fehler verknüpft ist.
QString QDBusMessage::errorName() const
Gibt den Namen des empfangenen Fehlers zurück.
QString QDBusMessage::interface() const
Gibt die Schnittstelle der aufgerufenen Methode (im Falle eines Methodenaufrufs) oder des Signals, von dem empfangen wird, zurück.
bool QDBusMessage::isDelayedReply() const
Gibt das Flag für verzögerte Antworten zurück, wie es von ` setDelayedReply()` gesetzt wurde. Standardmäßig ist dieses Flag auf „false“ gesetzt, was bedeutet, dass ` Qt D-Bus ` bei Bedarf automatische Antworten generiert.
bool QDBusMessage::isInteractiveAuthorizationAllowed() const
Gibt zurück, ob für die Nachricht das Flag „ ALLOW_INTERACTIVE_AUTHORIZATION “ gesetzt ist.
Siehe auch „ setInteractiveAuthorizationAllowed()“ und „ QDBusAbstractInterface::isInteractiveAuthorizationAllowed()“.
bool QDBusMessage::isReplyRequired() const
Gibt das Flag zurück, das angibt, ob auf diese Nachricht geantwortet werden soll oder nicht. Dies ist nur für „ method call messages “ von Bedeutung: Alle anderen Nachrichtentypen können keine Antworten erhalten, und diese Funktion gibt für sie immer „false“ zurück.
QString QDBusMessage::member() const
Gibt den Namen des ausgelösten Signals oder den Namen der aufgerufenen Methode zurück.
QString QDBusMessage::path() const
Gibt den Pfad des Objekts zurück, an das diese Nachricht gesendet wird (im Falle eines Methodenaufrufs) bzw. von dem sie empfangen wird (im Falle eines Signals).
QString QDBusMessage::service() const
Gibt den Namen des Dienstes oder die Busadresse des Remote-Methodenaufrufs zurück.
void QDBusMessage::setArguments(const QList<QVariant> &arguments)
Legt die Argumente fest, die über D-Bus an ` arguments` gesendet werden sollen. Dabei handelt es sich um die Argumente eines Methodenaufrufs oder um die Parameter des Signals.
Beachten Sie, dass „ QVariantMap “ mit einem ungültigen Wert für „ QVariant “ in „ arguments “ nicht zulässig ist.
Siehe auch ` arguments()`.
void QDBusMessage::setAutoStartService(bool enable)
Setzt das Flag für den automatischen Start auf „ enable “. Dieses Flag ist nur bei Methodenaufruf-Nachrichten sinnvoll, wo es dem D-Bus-Server mitteilt, den für den Dienstnamen zuständigen Dienst entweder automatisch zu starten oder nicht.
Standardmäßig ist dieses Flag auf „true“ gesetzt, d. h., ein Dienst wird automatisch gestartet. Das bedeutet:
Wenn der Dienst, an den dieser Methodenaufruf gesendet wird, bereits läuft, wird der Methodenaufruf an ihn weitergeleitet. Läuft der Dienst noch nicht, wird der D-Bus-Daemon aufgefordert, den diesem Dienstnamen zugeordneten Dienst automatisch zu starten. Dies wird über .service-Dateien abgewickelt, die in einem dem D-Bus-Server bekannten Verzeichnis abgelegt sind. Diese Dateien enthalten jeweils einen Dienstnamen und den Pfad zu einem Programm, das ausgeführt werden soll, wenn dieser Dienstname angefordert wird.
Siehe auch autoStartService().
void QDBusMessage::setDelayedReply(bool enable) const
Legt fest, ob die Nachricht später beantwortet wird (wenn „ enable “ auf „true“ gesetzt ist) oder ob eine automatische Antwort über „ Qt D-Bus “ generiert werden soll (wenn „ enable “ auf „false“ gesetzt ist).
In D-Bus müssen alle Methodenaufrufe eine Antwort an den Aufrufer generieren, sofern dieser nicht ausdrücklich etwas anderes angibt (siehe isReplyRequired()). QtDBus generiert automatisch solche Antworten für alle aufgerufenen Slots, ermöglicht es den Slots jedoch auch, anzugeben, ob sie die Verantwortung für das Versenden der Antwort zu einem späteren Zeitpunkt übernehmen, nachdem die Funktion die Verarbeitung abgeschlossen hat.
Siehe auch isDelayedReply() und Verzögerte Antworten.
void QDBusMessage::setInteractiveAuthorizationAllowed(bool enable)
Aktiviert oder deaktiviert das Flag „ ALLOW_INTERACTIVE_AUTHORIZATION “ in einer Nachricht.
Dieses Flag ist nur für Methodenaufruf-Nachrichten (QDBusMessage::MethodCallMessage) von Bedeutung. Ist „ enable “ auf „ true “ gesetzt, signalisiert das Flag dem Aufgerufenen, dass der Aufrufer der Methode bereit ist, auf die interaktive Autorisierung (beispielsweise über Polkit) zu warten, bevor die eigentliche Methode ausgeführt wird.
Ist „ enable “ auf „ false “ gesetzt, wird das Flag nicht gesetzt, was bedeutet, dass von der Gegenseite erwartet wird, dass sie alle Autorisierungsentscheidungen nicht-interaktiv und umgehend trifft. Dies ist die Standardeinstellung.
Der Fehler „ org.freedesktop.DBus.Error.InteractiveAuthorizationRequired “ weist darauf hin, dass die Autorisierung fehlgeschlagen ist, aber erfolgreich gewesen wäre, wenn dieses Flag gesetzt gewesen wäre.
Siehe auch isInteractiveAuthorizationAllowed() und QDBusAbstractInterface::setInteractiveAuthorizationAllowed().
QString QDBusMessage::signature() const
Gibt die Signatur des empfangenen Signals oder die der Ausgabeargumente eines Methodenaufrufs zurück.
[noexcept] void QDBusMessage::swap(QDBusMessage &other)
Tauscht diese Nachricht mit „ other “ aus. Dieser Vorgang läuft sehr schnell ab und schlägt niemals fehl.
QDBusMessage::MessageType QDBusMessage::type() const
Gibt den Nachrichtentyp zurück.
QDBusMessage &QDBusMessage::operator<<(const QVariant &arg)
Fügt das Argument „ arg “ zur Liste der Argumente hinzu, die bei einem Methodenaufruf oder einer Signalausgabe über D-Bus gesendet werden sollen.
[noexcept] QDBusMessage &QDBusMessage::operator=(QDBusMessage &&other)
Weist „ other “ diesem Objekt zu.
Hinweis: Das Objekt „ other “, aus dem die Zuweisung erfolgt, befindet sich in einem teilweise initialisierten Zustand, in dem die einzigen zulässigen Operationen die Zerstörung und die Zuweisung eines neuen Werts sind.
QDBusMessage &QDBusMessage::operator=(const QDBusMessage &other)
Kopiert den Inhalt des durch ` other` angegebenen Objekts.
Hinweis: Objekte vom Typ ` QDBusMessage ` werden gemeinsam genutzt. Änderungen an der Kopie wirken sich auch auf das Original aus. Weitere Informationen finden Sie unter ` setDelayedReply()`.
© 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.