PySide6.QtDBus.QDBusInterface¶
- 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]]])¶
- Parameters:
service – str
path – 字符串
interface – str
connection –
QDBusConnection
parent –
QObject
创建一个动态的
QDBusInterface
对象,该对象与路径path
上的对象在服务service
上的接口interface
相关联,使用给定的connection
。如果interface
为空字符串,则创建的对象将引用通过自省该对象找到的所有接口的合并。否则,如果interface
不为空,则QDBusInterface
对象将被缓存以加速相同接口的进一步创建。parent
被传递给基类构造函数。如果远程服务
service
不存在,或者在尝试获取远程接口interface
的描述时发生错误,创建的对象将无效(参见isValid()
)。