PySide6.QtQml.QJSValueIterator

class QJSValueIterator

QJSValueIterator 类为 QJSValue 提供了一个 Java 风格的迭代器。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QJSValueIterator 构造函数接受一个 QJSValue 作为参数。构造后,迭代器位于属性序列的最开始位置。以下是遍历 QJSValue 所有属性的方法:

object = QJSValue()
...
it = QJSValueIterator(object)
while it.hasNext():
    it.next()
    print(it.name(), ": ", it.value().toString())

next() 用于推进迭代器。name()value() 函数返回被跳过的最后一项的名称和值。

请注意,QJSValueIterator 只遍历 QJSValue 自身的属性;也就是说,它不会跟随原型链。你可以使用这样的循环来跟随原型链:

obj = ... # the object to iterate over
while obj.isObject():
    it = QJSValueIterator(obj)
    while it.hasNext():
        it.next()
        print(it.name())

    obj = obj.prototype()

另请参阅

property()

__init__(value)
Parameters:

QJSValue

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

hasNext()
Return type:

布尔

如果迭代器前面至少有一个项目(即迭代器在属性序列的末尾),则返回true;否则返回false。

另请参阅

next()

name()
Return type:

字符串

返回使用next()跳过的最后一个属性的名称。

另请参阅

value()

next()
Return type:

布尔

将迭代器向前推进一个位置。如果迭代器前面至少有一个项目(即迭代器没有已经在属性序列的末尾),则返回true;否则返回false。

另请参阅

hasNext() name()

value()
Return type:

QJSValue

返回使用next()跳过的最后一个属性的值。

另请参阅

name()