Spec-Zone.ru › Qt

Класс QDBusInterface

Класс QDBusInterface является прокси для интерфейсов на удаленных объектах. Подробнее...

Заголовок: #include <QDBusInterface>
CMake: find_package(Qt6 COMPONENTS Dbus REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Dbus)
qmake: QT += dbus
Наследуется от: QDBusAbstractInterface
  • Список всех членов, включая унаследованные

Открытые функции

QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = nullptr)
virtual ~QDBusInterface()

Подробное описание

QDBusInterface — это универсальный вспомогательный класс, используемый для вызовов удалённых объектов, подключения к сигналам, экспортируемым удалёнными объектами, и получения/установки значений удалённых свойств. Этот класс полезен для динамического доступа к удалённым объектам: то есть когда у вас нет сгенерированного кода, представляющего удалённый интерфейс.

Вызовы обычно выполняются с помощью функции call(), которая строит сообщение, отправляет его по шине, ожидает ответ и декодирует его. Сигналы подключаются с помощью обычной функции QObject::connect(). Наконец, к свойствам осуществляется доступ с помощью функций QObject::property() и QObject::setProperty().

Следующий фрагмент кода демонстрирует, как выполнить математическую операцию "2 + 2" в удалённом приложении, называемом com.example.Calculator, доступ к которому осуществляется через сессионную шину.

QDBusInterface remoteApp( "com.example.Calculator", "/Calculator/Operations",
                          "org.mathematics.RPNCalculator" );
remoteApp.call( "PushOperand", 2 );
remoteApp.call( "PushOperand", 2 );
remoteApp.call( "ExecuteOperation", "+" );
QDBusReply<int> reply = remoteApp.call( "PopOperand" );

if ( reply.isValid() )
    printf( "%d", reply.value() );          // prints 4

См. также Компилятор Qt D-Bus XML (qdbusxml2cpp).

Документация по членам-функциям

QDBusInterface::QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = nullptr)

Создаёт динамический объект QDBusInterface, связанный с интерфейсом interface на объекте с путём path в сервисе service, используя заданное connection. Если interface пустая строка, созданный объект будет ссылаться на объединение всех интерфейсов, найденных путём интроспекции этого объекта. В противном случае, если interface не пустая, объект QDBusInterface будет кэширован для ускорения последующего создания того же интерфейса.

parent передаётся в конструктор базового класса.

Если удалённый сервис service отсутствует или произошла ошибка при попытке получить описание удалённого интерфейса interface, созданный объект не будет валидным (см. isValid()).

[virtual] QDBusInterface::~QDBusInterface()

Уничтожает интерфейс объекта и освобождает все используемые ресурсы.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qdbusinterface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API