qt_add_dbus_interface
Erzeugt C++-Quellcode zur Implementierung einer Schnittstelle für eine D-Bus-Schnittstellenbeschreibungsdatei.
Der Befehl ist in der Komponente „ DBus “ des Pakets „ Qt6 “ definiert. Laden Sie das Paket mit folgendem Befehl:
find_package(Qt6 REQUIRED COMPONENTS DBus)Dieser Befehl wurde in Qt 6.0 eingeführt.
Syntax
qt_add_dbus_interface(<VAR> dbus_spec basename)Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen „ qt6_add_dbus_interface() “. Dieser Befehl unterstützt dieselben Argumente wie der vorliegende Befehl.
Beschreibung
Erzeugt C++-Quelldateien, die eine Schnittstelle für eine in „ dbus_spec “ definierte D-Bus-Schnittstellenbeschreibungsdatei implementieren. Die erzeugten Dateien werden nach „ basename “ benannt: „ basename.h “, „ basename.cpp “, „ basename.moc “. Die Pfade der Dateien werden zu „ <VAR> “ hinzugefügt.
Die Funktion richtet einen Aufruf des XML-Compilers „Qt D-Bus “ (qdbusxml2cpp) im Schnittstellen- (Proxy-)Modus ein. Standardmäßig generiert „ qdbusxml2cpp “ eine C++-Klasse, die nach dem Schnittstellennamen benannt ist und einen Alias mit Namespace enthält:
| D-Bus-Schnittstellenname | Klassenname | Name mit Namespace |
|---|---|---|
org.example.chat | OrgExampleChatInterface | org.example.chat |
Optionen
Optionen können über „ set_source_files_properties “ im „ dbus_spec “ festgelegt werden:
| Option | Wert | Beschreibung |
|---|---|---|
CLASSNAME | class_name | Überschreiben Sie den Namen der Standard-Interface-Klasse mit ` class_name`. |
NO_NAMESPACE | bool | Wenn auf „ ON “ gesetzt, wird der Name mit Namespace nicht generiert. |
INCLUDE | path | Fügt ein „ #include "path" “ in den generierten Code ein. |
© 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.