Sur cette page

QDBusConnectionInterface Class

La classe `QDBusConnectionInterface` permet d'accéder au service du démon D-Bus. En savoir plus...

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

Types publics

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

Propriétés

Emplacements publics

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.

Cette classe est principalement utilisée pour enregistrer et désenregistrer des noms de services sur le bus à l'aide des fonctions registerService() et unregisterService(), pour interroger la liste des noms existants à l'aide des fonctions isServiceRegistered(), registeredServiceNames() et serviceOwner(), et pour recevoir des notifications indiquant qu'un client s'est enregistré ou désenregistré via les signaux serviceRegistered(), serviceUnregistered() et serviceOwnerChanged().

Documentation sur les types de membres

enum QDBusConnectionInterface::RegisterServiceReply

Valeurs de retour possibles de la fonction ` registerService()` :

ConstanteValeurDescription
QDBusConnectionInterface::ServiceNotRegistered0L'appel a échoué et le nom du service n'a pas été enregistré.
QDBusConnectionInterface::ServiceRegistered1L'appelant est désormais propriétaire du nom de service.
QDBusConnectionInterface::ServiceQueued2L'appelant a spécifié l'indicateur « QueueService » et le service était déjà enregistré ; nous sommes donc en 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 de ce service serait déjà enregistré.

ConstanteValeurDescription
QDBusConnectionInterface::DontQueueService0Si une application demande un nom déjà attribué, aucune mise en file d’attente n’aura lieu. L’appel à registeredService() échouera tout simplement. Il s’agit de la valeur par défaut.
QDBusConnectionInterface::QueueService1Tente d’enregistrer le service demandé, mais ne cherche pas à le remplacer si une autre application l’a déjà enregistré. À la place, cette application est simplement mise en 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é ce nom de service, tente de le remplacer.

Voir également 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é à l'aide de l'option « ReplaceExistingService ».

Les valeurs possibles sont :

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

Voir également ServiceQueueOptions.

Documentation sur les propriétés

[read-only] activatableServiceNames : QDBusReply<QStringList>

contient les noms des services activables

Répertorie tous les noms pouvant être activés sur le bus.

Fonctions d'accès :

QDBusReply<QStringList> activatableServiceNames() const

[read-only] registeredServiceNames : QDBusReply<QStringList>

contient les noms de services enregistrés

Répertorie 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 lorsqu'une erreur survient lors d'un appel à la fonction ` QDBusConnection::callWithCallback()`. ` error ` précise la nature de l'erreur. ` call ` correspond au message qui n'a pas pu être transmis.

Voir également 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 l'enregistrement du nom de service serviceName sur le bus. Le drapeau qoption spécifie comment le serveur D-Bus doit se comporter si serviceName est déjà enregistré. Le drapeau roption spécifie si le serveur doit autoriser une autre application à remplacer notre nom enregistré.

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

Voir également unregisterService().

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

Renvoie les informations d'serviceName de connexion du processus qui détient actuellement le service de bus.

Pour plus d'informations, consultez la section <https://dbus.freedesktop.org/doc/dbus-specification.html> : « Méthode : org.freedesktop.DBus.GetConnectionCredentials ».

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, renvoie une erreur « org.freedesktop.DBus.Error.NameHasNoOwner ».

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

Renvoie l'identifiant de processus Unix (PID) du processus qui gère 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 du bus (nom de connexion unique ou nom de service bien connu) fourni par la fonction ` service ` est acquis par cette application.

L'acquisition a lieu après que cette application a demandé un nom à l'aide de la fonction registerService().

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

Renvoie l'identifiant 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 de service du bus fourni par service.

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

Demande au bus de lancer le service portant le nom « name ».

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

Libère la revendication du nom de service de bus « serviceName », qui avait été préalablement enregistré auprès de registerService(). Si cette application détenait la propriété du nom, celui-ci sera libéré et d'autres applications pourront le revendiquer. Si elle n'avait fait que mettre le nom en file d'attente, elle abandonne alors sa place 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.