QDBusInterface 类
QDBusInterface 类是远程对象接口的代理。 更多信息...
头文件 | #include <QDBusInterface> |
CMake | find_package(Qt6 REQUIRED COMPONENTS DBus) 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() 函数访问属性。
以下代码片段演示了如何在远程应用程序(名为 com.example.Calculator
)中执行数学运算 "2 + 2"
,并通过会话总线访问。
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 对象,与在服务 service 上的路径 path 对象的接口 interface 关联。使用给定的 connection。如果 interface 是一个空字符串,则创建的对象将引用使用反归检查找到的所有接口的合并。否则,如果 interface 不为空,QDBusInterface 对象将被缓存,以加快相同接口的进一步创建。
parent 被传递给基类构造函数。
如果远程服务 service 不存在或尝试获取远程接口 interface 的描述发生错误,则创建的对象将不有效(请参阅 isValid())。
[虚拟 noexcept]
QDBusInterface::~QDBusInterface()
销毁对象接口并释放其所使用的任何资源。
© 2024 Qt公司有限公司。本文件中包含的文档贡献是相应所有者的版权。本文件提供的文档根据自由软件基金会发布的版本1.3的GNU自由文档许可证的条款提供。Qt及其相关标志是芬兰及全球其他国家的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。