- class QDBusInterface#
QDBusInterface
类是远程对象接口的代理。 更多…概要#
方法#
def
__init__()
备注
本文档可能包含自动从C++转换为Python的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译中的问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上提交问题来解决。
详细说明#
警告
本节包含自动从C++转换为Python的片段,可能包含错误。
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", "+" ) reply = remoteApp.call( "PopOperand" ) if reply.isValid(): printf( "%d", reply.value() ) # prints 4
可以使用基于字符串的连接捕获DBus信号(请参阅 通过方法签名字符串指定信号和槽)。
- __init__(service, path[, interface=""[, connection=QDBusConnection.sessionBus()[, parent=None]]])#
- 参数:
service – str
path – str
interface – str
connection –
QDBusConnection
parent –
QObject
创建一个动态的与接口
interface
相关的QDBusInterface
对象,在服务service
上路径path
的对象处,使用给定的connection
。如果interface
是一个空字符串,创建的对象将引用通过对该对象进行反射找到的所有接口的合并。如果不为空,则高速缓存QDBusInterface
对象以加快相同接口的进一步创建。parent
传递给基类构造函数。如果远程服务
service
不存在,或在尝试获取远程接口interface
描述时出现错误,则创建的对象将是不合法的(请参阅isValid()
)。