Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QDBusArgument Class Reference
[QtDBus module]

该QDBusArgument类用于马歇尔和demarshall D-Bus的参数。More...

Methods


Detailed Description

在C + +中QDBusArgument类用于马歇尔和demarshall乌思集合类型,如数组,结构和地图。在PyQt的值会自动取消编组和QDBusArgument仅用于马歇尔值。在C + +编组是使用重载的左移运算符。在PyQt的单add()函数的使用。


Method Documentation

QDBusArgument.__init__ (self)

构造一个空QDBusArgument的说法。

QDBusArgument对象不允许进行读取或写入。

QDBusArgument.__init__ (self, QDBusArgument other)

构造的一个副本other QDBusArgument对象。

因此,这两个对象将从该点包含相同的状态前进。 QDBusArguments被明确共享的,因此,任何修改或拷贝将影响其它1太。

QDBusArgument.__init__ (self, object arg, int id = QMetaType.Int)

QDBusArgument.add (self, object arg, int id = QMetaType.Int)

QDBusArgument.beginArray (self, int id)

打开适用于附加的元类型的元素的新D-Bus的阵列id

这个功能通常是用在operator<<流媒体运营商,如下面的例子:

 // append an array of MyElement types
 QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myarray)
 {
     argument.beginArray( qMetaTypeId<MyElement>() );
     for ( int i = 0; i < myarray.length; ++i )
         argument << myarray.elements[i];
     argument.endArray();
     return argument;
 }

如果你想马歇尔的类型是QListQVector或任何Qt的Container Classes这需要一个模板参数,你不必声明operator<<正常吧,因为QtDBus提供通用模板做编组数据的工作。这同样适用于STL的序列容器,如std.liststd.vector等。

See also endArray( )beginStructure()和beginMap( ) 。

QDBusArgument.beginMap (self, int kid, int vid)

打开适用于附加元素的新D-Bus的地图。地图是容器相关联的一个条目(关键)到另一个(的价值) ,如Qt的QMap or QHash。地图上的键和值的元类型的ID必须在传递kidvid分别。

这个功能通常是用在operator<<流媒体运营商,如下面的例子:

 // append a dictionary that associates ints to MyValue types
 QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &mydict)
 {
     argument.beginMap( QVariant.Int, qMetaTypeId<MyValue>() );
     for ( int i = 0; i < mydict.length; ++i ) {
         argument.beginMapEntry();
         argument << mydict.data[i].key << mydict.data[i].value;
         argument.endMapEntry();
     }
     argument.endMap();
     return argument;
 }

如果你想马歇尔的类型是QMap or QHash,你不必声明operator<<正常吧,因为QtDBus提供通用模板做编组数据的工作。

See also endMap( )beginStructure( )beginArray()和beginMapEntry( ) 。

QDBusArgument.beginMapEntry (self)

打开适合的附加键和值条目的D-Bus的映射项。当一个图是打开此功能仅适用beginMap( ) 。

See beginMap()该函数的使用情况的一个例子。

See also endMapEntry()和beginMap( ) 。

QDBusArgument.beginStructure (self)

打开适合追加新的论据了新的D-Bus的结构。

这个功能通常是用在operator<<流媒体运营商,如下面的例子:

 QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
 {
     argument.beginStructure();
     argument << mystruct.member1 << mystruct.member2 << ... ;
     argument.endStructure();
     return argument;
 }

结构可以包含其他结构,所以下面的代码是有效的:

 QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &mystruct)
 {
     argument.beginStructure();
     argument << mystruct.member1 << mystruct.member2;

     argument.beginStructure();
     argument << mystruct.member3.subMember1 << mystruct.member3.subMember2;
     argument.endStructure();

     argument << mystruct.member4;
     argument.endStructure();
     return argument;
 }

See also endStructure( )beginArray()和beginMap( ) 。

QDBusArgument.endArray (self)

关闭一个D-Bus的数组开beginArray( ) 。这个函数必须被调用的次数相同数量的beginArray()被调用。

See also beginArray( )endStructure()和endMap( ) 。

QDBusArgument.endMap (self)

关闭一个D-Bus的地图开beginMap( ) 。这个函数必须被调用的次数相同数量的beginMap()被调用。

See also beginMap( )endStructure()和endArray( ) 。

QDBusArgument.endMapEntry (self)

关闭开了一个D-Bus的映射项beginMapEntry( ) 。这个函数必须被调用的次数相同数量的beginMapEntry()被调用。

See also beginMapEntry( ) 。

QDBusArgument.endStructure (self)

关闭一个D-Bus的结构与开beginStructure( ) 。这个函数必须被调用的次数相同数量的beginStructure()被调用。

See also beginStructure( )endArray()和endMap( ) 。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5