Класс QDBusInterface
Класс QDBusInterface является прокси для интерфейсов удаленных объектов. Подробнее...
| Заголовок: | #include <QDBusInterface> |
| qmake: | QT += dbus |
| С момента версии: | Qt 4.2 |
| Наследует: | QDBusAbstractInterface |
Этот класс был введён в Qt 4.2.
Открытые функции
| 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 См. также Компилятор XML Qt D-Bus (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-5.15/qdbusinterface.html