Класс QDBusInterface
Класс QDBusInterface является прокси для интерфейсов на удалённых объектах. Подробнее...
| Заголовок: | #include <QDBusInterface> |
| qmake: | QT += dbus |
| С момента: | Qt 4.2 |
| Наследует: | QDBusAbstractInterface |
Открытые функции
| QDBusInterface(const QString &service, const QString &path, const QString &interface = QString(), const QDBusConnection &connection = QDBusConnection::sessionBus(), QObject *parent = nullptr) | |
| virtual | ~QDBusInterface() |
- 15 открытых функций унаследовано от QDBusAbstractInterface
- 34 открытых функций унаследовано от QObject
Дополнительные унаследованные члены
- 1 свойство унаследовано от QObject
- 1 открытый слот унаследован от QObject
- 2 сигнала унаследованы от QObject
- 1 открытая переменная унаследована от QObject
- 10 статические открытые члены унаследованы от QObject
- 9 защищённых функций унаследованы от QObject
- 2 защищённых переменных унаследованы от QObject
Подробное описание
Класс 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 пустая строка, создаваемый объект будет ссылаться на объединение всех интерфейсов, найденных в этом объекте.
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/archives/qt-5.11/qdbusinterface.html