Sur cette page

QDBusConnectionInterface Class

La classe QDBusConnectionInterface permet d'accéder au service de démon de bus D-Bus. Plus d'informations...

En-tête : #include <QDBusConnectionInterface>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus
Héritages : QDBusAbstractInterface

Types publics

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

Propriétés

Machines à sous publiques

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)

Signaux

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

Description détaillée

Le démon du serveur de bus D-Bus fournit une interface spéciale org.freedesktop.DBus qui permet aux clients d'accéder à certaines propriétés du bus, telles que la liste actuelle des clients connectés. La classe QDBusConnectionInterface permet d'accéder à cette interface.

Les utilisations les plus courantes de cette classe sont l'enregistrement et le désenregistrement des noms de service sur le bus à l'aide des fonctions registerService() et unregisterService(), l'interrogation des noms existants à l'aide des fonctions isServiceRegistered(), registeredServiceNames() et serviceOwner(), et la réception d'une notification indiquant qu'un client s'est enregistré ou désenregistré à l'aide des signaux serviceRegistered(), serviceUnregistered() et serviceOwnerChanged().

Documentation sur les types de membres

enum QDBusConnectionInterface::RegisterServiceReply

Valeurs de retour possibles de registerService() :

ConstanteValeurDescription de l'appel
QDBusConnectionInterface::ServiceNotRegistered0L'appel a échoué et le nom de service n'a pas été enregistré.
QDBusConnectionInterface::ServiceRegistered1L'appelant est maintenant propriétaire du nom du service.
QDBusConnectionInterface::ServiceQueued2L'appelant a spécifié l'indicateur QueueService et le service était déjà enregistré, nous sommes donc dans la file d'attente.

Le signal serviceRegistered() sera émis lorsque le service sera acquis par cette application.

enum QDBusConnectionInterface::ServiceQueueOptions

Indicateurs permettant de déterminer le comportement à adopter lors de l'enregistrement d'un service, dans le cas où le nom du service est déjà enregistré.

ConstanteValeurDescription
QDBusConnectionInterface::DontQueueService0Si une application demande un nom qui lui appartient déjà, aucune mise en file d'attente ne sera effectuée. L'appel à registeredService() échouera simplement. Il s'agit de la valeur par défaut.
QDBusConnectionInterface::QueueService1Tente d'enregistrer le service demandé, mais n'essaie pas de le remplacer si une autre application l'a déjà enregistré. Au lieu de cela, il met simplement cette application dans la file d'attente, jusqu'à ce qu'elle soit abandonnée. Le signal serviceRegistered() sera émis lorsque cela se produira.
QDBusConnectionInterface::ReplaceExistingService2Si une autre application a déjà enregistré le nom du service, essayez de le remplacer.

Voir aussi ServiceReplacementOptions.

enum QDBusConnectionInterface::ServiceReplacementOptions

Indicateurs permettant de déterminer si le serveur D-Bus doit autoriser une autre application à remplacer un nom que cette application a enregistré avec l'option ReplaceExistingService.

Les valeurs possibles sont les suivantes :

ConstanteValeurDescription
QDBusConnectionInterface::DontAllowReplacement0Ne pas autoriser une autre application à nous remplacer. Le service doit être explicitement désenregistré avec unregisterService() pour qu'une autre application puisse l'acquérir. Il s'agit de la valeur par défaut.
QDBusConnectionInterface::AllowReplacement1Autoriser d'autres applications à nous remplacer avec l'option ReplaceExistingService de registerService() sans intervention. Si cela se produit, le signal serviceUnregistered() sera émis.

Voir aussi ServiceQueueOptions.

Documentation sur les propriétés

[read-only] activatableServiceNames : QDBusReply<QStringList>

contient les noms de services activables

Liste tous les noms qui peuvent être activés sur le bus.

Fonctions d'accès :

QDBusReply<QStringList> activatableServiceNames() const

[read-only] registeredServiceNames : QDBusReply<QStringList>

contient les noms de service enregistrés

Liste tous les noms actuellement enregistrés sur le bus.

Fonctions d'accès :

QDBusReply<QStringList> registeredServiceNames() const

Documentation des fonctions membres

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

Ce signal est émis en cas d'erreur lors d'une opération QDBusConnection::callWithCallback(). error indique l'erreur. call est le message qui n'a pas pu être délivré.

Voir aussi QDBusConnection::callWithCallback().

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

Renvoie true si le nom de service serviceName est actuellement enregistré.

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

Demande d'enregistrement du nom de service serviceName sur le bus. Le drapeau qoption indique comment le serveur D-Bus doit se comporter si serviceName est déjà enregistré. Le drapeau roption indique si le serveur doit autoriser une autre application à remplacer notre nom enregistré.

Si l'enregistrement du service réussit, le signal serviceRegistered() est émis. Si nous sommes placés dans la file d'attente, le signal sera émis lorsque nous obtiendrons le nom. Si roption est AllowReplacement, le signal serviceUnregistered() sera émis si une autre application remplace celle-ci.

Voir aussi unregisterService().

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

Retourne les identifiants de connexion pour le processus qui détient actuellement le service de bus serviceName.

Voir <https://dbus.freedesktop.org/doc/dbus-specification.html> section : 'Method : org.freedesktop.DBus.GetConnectionCredentials' pour plus d'informations.

Cette fonction a été introduite dans Qt 6.10.

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

Renvoie le nom de connexion unique du propriétaire principal du nom name. Si le nom demandé n'a pas de propriétaire, il renvoie une erreur org.freedesktop.DBus.Error.NameHasNoOwner.

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

Renvoie l'ID du processus Unix (PID) pour le processus qui détient actuellement le service de bus serviceName.

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

Ce signal est émis par le serveur D-Bus lorsque le nom du service de bus (nom de connexion unique ou nom de service bien connu) donné par service est acquis par cette application.

L'acquisition a lieu après que cette application a demandé un nom en utilisant registerService().

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

Renvoie l'ID utilisateur Unix (UID) du processus qui détient actuellement le service de bus serviceName.

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

Ce signal est émis par le serveur D-Bus lorsque cette application perd la propriété du nom du service de bus donné par service.

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

Demande que le bus commence le service indiqué par le nom name.

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

Libère la revendication sur le nom de service de bus serviceName, qui avait été précédemment enregistré avec registerService(). Si cette application était propriétaire du nom, celui-ci sera libéré pour que d'autres applications puissent le revendiquer. Si elle n'avait que le nom en file d'attente, elle abandonne sa position dans la file d'attente.

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