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

QScriptValueIterator Class Reference
[QtScript module]

该QScriptValueIterator类提供了一个Java风格的迭代器QScriptValueMore...

Methods


Detailed Description

该QScriptValueIterator类提供了一个Java风格的迭代器QScriptValue

该QScriptValueIterator构造函数接受一个QScriptValue作为参数。施工完毕后,迭代器位于属性序列的开始。以下是如何遍历的所有属性QScriptValue

 QScriptValue object;
 ...
 QScriptValueIterator it(object);
 while (it.hasNext()) {
     it.next();
     qDebug() << it.name() << ": " << it.value().toString();
 }

next( )前进的迭代器。该name( )value()和flags( )函数返回被跳过的最后一个项目的名称,值和标志。

如果你想为你遍历删除的属性QScriptValue,使用remove( ) 。如果要修改某个属性的值,请使用setValue( ) 。

需要注意的是QScriptValueIterator只能通过迭代QScriptValue自身的特性,即它不遵循原型链。你可以使用一个循环像这样遵循原型链:

 QScriptValue obj = ...; // the object to iterate over
 while (obj.isObject()) {
     QScriptValueIterator it(obj);
     while (it.hasNext()) {
         it.next();
         qDebug() << it.name();
     }
     obj = obj.prototype();
 }

需要注意的是QScriptValueIterator不会自动跳过具有的属性QScriptValue.SkipInEnumeration标志设置,该标志只影响迭代的脚本代码。如果你愿意,你可以跳过此类物业的代码如下所示:

 while (it.hasNext()) {
     it.next();
     if (it.flags() & QScriptValue.SkipInEnumeration)
         continue;
     qDebug() << "found enumerated property:" << it.name();
 }

Method Documentation

QScriptValueIterator.__init__ (self, QScriptValue value)

构造一个迭代器遍历object。迭代器被设置为在属性的序列的前部(第一属性之前)。

QScriptValue.PropertyFlags QScriptValueIterator.flags (self)

返回用跃过最后一个属性的标志next()或previous( ) 。

See also value( ) 。

bool QScriptValueIterator.hasNext (self)

返回True如果至少有一个项目未来的迭代器(即迭代器not在属性序列)的后面,否则返回False 。

See also next()和hasPrevious( ) 。

bool QScriptValueIterator.hasPrevious (self)

如果在后面的迭代器至少有一个项目,则返回True (即迭代器not在属性序列)的前面,否则返回False 。

See also previous()和hasNext( ) 。

QString QScriptValueIterator.name (self)

返回用跃过最后一个属性的名称next()或previous( ) 。

See also value()和flags( ) 。

QScriptValueIterator.next (self)

一个位置前进的迭代器。

在位于容器的后面的迭代器调用这个函数会导致不确定的结果。

See also hasNext( )previous()和name( ) 。

QScriptValueIterator.previous (self)

一个位置移动迭代回来。

在位于容器的前一个迭代器调用这个函数会导致不确定的结果。

See also hasPrevious( )next()和name( ) 。

QScriptValueIterator.remove (self)

删除所有已使用跃过最后一个属性next()或previous( ) 。

See also setValue( ) 。

QScriptString QScriptValueIterator.scriptName (self)

返回用跃过最后一个属性的名称next()或previous( ) 。

此功能被引入Qt的4.4 。

QScriptValueIterator.setValue (self, QScriptValue value)

设置value这是用跳过去的财产next()或previous( ) 。

See also value()和name( ) 。

QScriptValueIterator.toBack (self)

移动迭代器的背面QScriptValue(后最后一个属性) 。

See also toFront()和previous( ) 。

QScriptValueIterator.toFront (self)

移动迭代器的前面QScriptValue(第一属性之前) 。

See also toBack()和next( ) 。

QScriptValue QScriptValueIterator.value (self)

返回用跃过最后一个属性的值next()或previous( ) 。

See also setValue()和name( ) 。




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