QDBusInterface Class Reference

[QtDBus module]

该QDBusInterface类是对远程对象接口的代理。More…

继承QDBusAbstractInterface

Methods

  • __init__ (self, QString service, QString path, QString interface = QString(), QDBusConnection connection = QDBusConnection.sessionBus(), QObject parent = None)

Detailed Description

该QDBusInterface类是对远程对象接口的代理。

QDBusInterface是用来放置调用远程对象,连接到远程对象导出的信号,并获取/设置远程属性值的通用方法类。这个类是动态访问远程对象很有用:即当你没有一个生成代码,表示该远程接口。

呼叫通常放置使用call( )函数,它构造消息,发送过来的大巴,等待答复和解码的答复。信号是通过使用正常连接到QObject.connect()函数。最后,属性是使用访问QObject.property()和QObject.setProperty()函数。

下面的代码片断演示了如何执行数学运算"2 + 2"在所谓的远程应用程序com.example.Calculator通过会话总线,访问。

  1. QDBusInterface remoteApp( "com.example.Calculator", "/Calculator/Operations",
  2. "org.mathematics.RPNCalculator" );
  3. remoteApp.call( "PushOperand", 2 );
  4. remoteApp.call( "PushOperand", 2 );
  5. remoteApp.call( "ExecuteOperation", "+" );
  6. [QDBusReply](qdbusreply.html)<int> reply = remoteApp.call( "PopOperand" );
  7. if ( reply.isValid() )
  8. printf( "%d", reply.value() ); // prints 4

Method Documentation

  1. QDBusInterface.__init__ (self, QString service, QString path, QString interface = QString(), QDBusConnection connection = QDBusConnection.sessionBus(), QObject parent = None)

创建一个动态QDBusInterface与接口相关联的对象interface在对路径物件path对服务service,使用给定的connection。如果interface是一个空字符串,创建的对象将引用该对象中找到的所有接口的合并。

parent传递给基类构造函数。

如果该远程服务service不存在,或者如果发生错误试图获取远程接口的描述interface,创建的对象将是无效的(见isValid())。