[QtScript module]

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

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

  1. [QScriptValue](docs_qscriptvalue.html) object;
  2. ...
  3. QScriptValueIterator it(object);
  4. while (it.hasNext()) {
  5. it.next();
  6. qDebug() << it.name() << ": " << it.value().toString();
  7. }

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

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

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

  1. [QScriptValue](docs_qscriptvalue.html) obj = ...; // the object to iterate over
  2. while (obj.isObject()) {
  3. QScriptValueIterator it(obj);
  4. while (it.hasNext()) {
  5. it.next();
  6. qDebug() << it.name();
  7. }
  8. obj = obj.prototype();
  9. }

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

  1. while (it.hasNext()) {
  2. it.next();
  3. if (it.flags() & [QScriptValue](docs_qscriptvalue.html).SkipInEnumeration)
  4. continue;
  5. qDebug() << "found enumerated property:" << it.name();
  6. }

Method Documentation

  1. QScriptValueIterator.__init__ (self, QScriptValue value)

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

  1. QScriptValue.PropertyFlags QScriptValueIterator.flags (self)

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

See also value( ) 。

  1. bool QScriptValueIterator.hasNext (self)

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

See also next()和hasPrevious( ) 。

  1. bool QScriptValueIterator.hasPrevious (self)

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

See also previous()和hasNext( ) 。

  1. QString QScriptValueIterator.name (self)

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

See also value()和flags( ) 。

  1. QScriptValueIterator.next (self)

一个位置前进的迭代器。

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

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

  1. QScriptValueIterator.previous (self)

一个位置移动迭代回来。

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

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

  1. QScriptValueIterator.remove (self)

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

See also setValue( ) 。

  1. QScriptString QScriptValueIterator.scriptName (self)

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

此功能被引入Qt的4.4 。

  1. QScriptValueIterator.setValue (self, QScriptValue value)

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

See also value()和name( ) 。

  1. QScriptValueIterator.toBack (self)

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

See also toFront()和previous( ) 。

  1. QScriptValueIterator.toFront (self)

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

See also toBack()和next( ) 。

  1. QScriptValue QScriptValueIterator.value (self)

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

See also setValue()和name( ) 。