Auf dieser Seite

QDBusConnectionInterface Class

Die Klasse „QDBusConnectionInterface“ ermöglicht den Zugriff auf den D-Bus-Bus-Daemon-Dienst. Mehr...

Header: #include <QDBusConnectionInterface>
CMake: find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake: QT += dbus
Erbt von: QDBusAbstractInterface

Öffentliche Typen

enum RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued }
enum ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService }
enum ServiceReplacementOptions { DontAllowReplacement, AllowReplacement }

Eigenschaften

Öffentliche Spielautomaten

QDBusReply<QStringList> activatableServiceNames() const
QDBusReply<bool> isServiceRegistered(const QString &serviceName) const
QDBusReply<QDBusConnectionInterface::RegisterServiceReply> registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)
QDBusReply<QStringList> registeredServiceNames() const
(since 6.10) QDBusReply<QVariantMap> serviceCredentials(const QString &serviceName) const
QDBusReply<QString> serviceOwner(const QString &name) const
QDBusReply<uint> servicePid(const QString &serviceName) const
QDBusReply<uint> serviceUid(const QString &serviceName) const
QDBusReply<void> startService(const QString &name)
QDBusReply<bool> unregisterService(const QString &serviceName)

Signale

void callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call)
void serviceRegistered(const QString &service)
void serviceUnregistered(const QString &service)

Ausführliche Beschreibung

Der D-Bus-Bus-Server-Daemon stellt eine spezielle Schnittstelle bereit: „ org.freedesktop.DBus “, über die Clients auf bestimmte Eigenschaften des Busses zugreifen können, beispielsweise auf die aktuelle Liste der verbundenen Clients. Die Klasse „QDBusConnectionInterface“ ermöglicht den Zugriff auf diese Schnittstelle.

Die häufigsten Anwendungsfälle dieser Klasse sind das Registrieren und Abmelden von Dienstnamen auf dem Bus mithilfe der Funktionen ` registerService()` und ` unregisterService()`, das Abfragen nach vorhandenen Namen mithilfe der Funktionen ` isServiceRegistered()`, ` registeredServiceNames()` und ` serviceOwner()` sowie das Empfangen von Benachrichtigungen darüber, dass sich ein Client registriert oder abgemeldet hat, über die Signale ` serviceRegistered()`, ` serviceUnregistered()` und `serviceOwnerChanged()`.

Dokumentation zu Mitgliedstypen

enum QDBusConnectionInterface::RegisterServiceReply

Die möglichen Rückgabewerte von ` registerService()`:

KonstanteWertBeschreibung
QDBusConnectionInterface::ServiceNotRegistered0Der Aufruf ist fehlgeschlagen und der Dienstname wurde nicht registriert.
QDBusConnectionInterface::ServiceRegistered1Der Aufrufer ist nun der Eigentümer des Dienstnamens.
QDBusConnectionInterface::ServiceQueued2Der Aufrufer hat das Flag „ QueueService “ angegeben, und der Dienst war bereits registriert, daher befinden wir uns in der Warteschlange.

Das Signal „ serviceRegistered()“ wird ausgelöst, sobald der Dienst von dieser Anwendung übernommen wird.

enum QDBusConnectionInterface::ServiceQueueOptions

Flags zur Festlegung, wie sich eine Dienstregistrierung verhalten soll, falls der Dienstname bereits registriert ist.

KonstanteWertBeschreibung
QDBusConnectionInterface::DontQueueService0Wenn eine Anwendung einen Namen anfordert, der bereits vergeben ist, erfolgt keine Einreihung in die Warteschlange. Der Aufruf von `registeredService()` schlägt einfach fehl. Dies ist die Standardeinstellung.
QDBusConnectionInterface::QueueService1Es wird versucht, den angeforderten Dienst zu registrieren, jedoch nicht, ihn zu ersetzen, falls eine andere Anwendung ihn bereits registriert hat. Stattdessen wird diese Anwendung einfach in die Warteschlange gestellt, bis der Versuch aufgegeben wird. In diesem Fall wird das Signal „ serviceRegistered()“ ausgelöst.
QDBusConnectionInterface::ReplaceExistingService2Wenn eine andere Anwendung den Dienstnamen bereits registriert hat, wird versucht, ihn zu ersetzen.

Siehe auch ` ServiceReplacementOptions`.

enum QDBusConnectionInterface::ServiceReplacementOptions

Flags zur Festlegung, ob der D-Bus-Server einer anderen Anwendung erlauben soll, einen Namen zu überschreiben, den diese Anwendung mit der Option „ ReplaceExistingService “ registriert hat.

Die möglichen Werte sind:

KonstanteWertBeschreibung
QDBusConnectionInterface::DontAllowReplacement0Anderen Anwendungen nicht erlauben, uns zu ersetzen. Der Dienst muss explizit mit ` unregisterService()` abgemeldet werden, damit eine andere Anwendung ihn übernehmen kann. Dies ist die Standardeinstellung.
QDBusConnectionInterface::AllowReplacement1Erlaube anderen Anwendungen, uns ohne Eingreifen mit der Option „ ReplaceExistingService “ in „ registerService()“ zu ersetzen. In diesem Fall wird das Signal „ serviceUnregistered()“ ausgelöst.

Siehe auch „ ServiceQueueOptions “.

Dokumentation zur Eigenschaft

[read-only] activatableServiceNames : QDBusReply<QStringList>

enthält die Namen der aktivierbaren Dienste

Listet alle Namen auf, die auf dem Bus aktiviert werden können.

Zugriffsfunktionen:

QDBusReply<QStringList> activatableServiceNames() const

[read-only] registeredServiceNames : QDBusReply<QStringList>

enthält die registrierten Dienstnamen

Listet alle derzeit auf dem Bus registrierten Namen auf.

Zugriffsfunktionen:

QDBusReply<QStringList> registeredServiceNames() const

Dokumentation der Mitgliedsfunktionen

[signal] void QDBusConnectionInterface::callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call)

Dieses Signal wird ausgelöst, wenn während eines Aufrufs von ` QDBusConnection::callWithCallback()` ein Fehler auftritt. ` error ` gibt den Fehler an. ` call ` ist die Nachricht, die nicht zugestellt werden konnte.

Siehe auch QDBusConnection::callWithCallback().

[slot] QDBusReply<bool> QDBusConnectionInterface::isServiceRegistered(const QString &serviceName) const

Gibt „ true “ zurück, wenn der Dienstname „ serviceName “ derzeit registriert ist.

[slot] QDBusReply<QDBusConnectionInterface::RegisterServiceReply> QDBusConnectionInterface::registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)

Fordert die Registrierung des Dienstnamens „ serviceName “ auf dem Bus an. Das Flag „ qoption “ legt fest, wie sich der D-Bus-Server verhalten soll, falls „ serviceName “ bereits registriert ist. Das Flag „ roption “ legt fest, ob der Server zulassen soll, dass eine andere Anwendung unseren registrierten Namen ersetzt.

Wenn die Registrierung des Dienstes erfolgreich ist, wird das Signal „ serviceRegistered()“ ausgesendet. Wenn wir in die Warteschlange gestellt werden, wird das Signal ausgesendet, sobald wir den Namen erhalten. Wenn „ roption “ gleich „ AllowReplacement “ ist, wird das Signal „ serviceUnregistered()“ ausgesendet, falls eine andere Anwendung diesen Namen ersetzt.

Siehe auch unregisterService().

[slot, since 6.10] QDBusReply<QVariantMap> QDBusConnectionInterface::serviceCredentials(const QString &serviceName) const

Gibt die Verbindungsdaten für den Prozess zurück, der derzeit den Busdienst „ serviceName “ hält.

Weitere Informationen finden Sie unter <https://dbus.freedesktop.org/doc/dbus-specification.html> im Abschnitt: „Method: org.freedesktop.DBus.GetConnectionCredentials“.

Diese Funktion wurde in Qt 6.10 eingeführt.

[slot] QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const

Gibt den eindeutigen Verbindungsnamen des primären Eigentümers des Namens „ name “ zurück. Wenn der angeforderte Name keinen Eigentümer hat, wird der Fehler „ org.freedesktop.DBus.Error.NameHasNoOwner “ zurückgegeben.

[slot] QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const

Gibt die Unix-Prozess-ID (PID) des Prozesses zurück, der derzeit den Busdienst „ serviceName “ hält.

[signal] void QDBusConnectionInterface::serviceRegistered(const QString &service)

Dieses Signal wird vom D-Bus-Server ausgesendet, wenn der von ` service ` angegebene Bus-Dienstname (eindeutiger Verbindungsname oder bekannter Dienstname) von dieser Anwendung abgerufen wird.

Die Erlangung erfolgt, nachdem diese Anwendung über ` registerService()` einen Namen angefordert hat.

[slot] QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const

Gibt die Unix-Benutzer-ID (UID) des Prozesses zurück, der derzeit die Bus-Service- serviceName hält.

[signal] void QDBusConnectionInterface::serviceUnregistered(const QString &service)

Dieses Signal wird vom D-Bus-Server ausgesendet, wenn diese Anwendung die Eigentumsrechte an dem Busdienstnamen verliert, der unter service angegeben ist.

[slot] QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)

Fordert den Bus auf, den Dienst mit dem Namen „ name “ zu starten.

[slot] QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)

Gibt den Anspruch auf den Busdienstnamen „ serviceName “ frei, der zuvor unter registerService() registriert worden war. Falls diese Anwendung Inhaberin des Namens war, wird dieser für andere Anwendungen freigegeben, die ihn beanspruchen können. Falls der Name lediglich in der Warteschlange stand, gibt die Anwendung ihren Platz in der Warteschlange auf.

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