[QtScript module]
该QScriptValueIterator类提供了一个Java风格的迭代器QScriptValue。More…
Methods
__init__ (self, QScriptValue value)QScriptValue.PropertyFlags flags (self)bool hasNext (self)bool hasPrevious (self)QString name (self)next (self)previous (self)remove (self)QScriptString scriptName (self)setValue (self, QScriptValue value)toBack (self)toFront (self)QScriptValue value (self)
Detailed Description
该QScriptValueIterator类提供了一个Java风格的迭代器QScriptValue。
该QScriptValueIterator构造函数接受一个QScriptValue作为参数。施工完毕后,迭代器位于属性序列的开始。以下是如何遍历的所有属性QScriptValue:
[QScriptValue](docs_qscriptvalue.html) 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](docs_qscriptvalue.html) obj = ...; // the object to iterate overwhile (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](docs_qscriptvalue.html).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( ) 。
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( ) 。
QScriptValueIterator.toBack (self)
移动迭代器的背面QScriptValue(后最后一个属性) 。
See also toFront()和previous( ) 。
QScriptValueIterator.toFront (self)
移动迭代器的前面QScriptValue(第一属性之前) 。
QScriptValue QScriptValueIterator.value (self)
返回用跃过最后一个属性的值next()或previous( ) 。
