[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 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](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( ) 。