Класс QJSValueIterator
Класс QJSValueIterator предоставляет итератор в стиле Java для QJSValue. Подробнее...
| Заголовок: | #include <QJSValueIterator> |
| CMake: | find_package(Qt6 COMPONENTS Qml REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Qml) |
| qmake: | QT += qml |
Открытые функции
| QJSValueIterator(const QJSValue &object) | |
| QJSValueIterator & | operator=(QJSValue &object) |
| ~QJSValueIterator() | |
| bool | hasNext() const |
| QString | name() const |
| bool | next() |
| QJSValue | value() const |
Подробное описание
Конструктор QJSValueIterator принимает QJSValue в качестве аргумента. После создания итератор находится в самом начале последовательности свойств. Вот как перебрать все свойства QJSValue:
QJSValue object;
...
QJSValueIterator it(object);
while (it.hasNext()) {
it.next();
qDebug() << it.name() << ": " << it.value().toString();
} Метод next() перемещает итератор. Методы name() и value() возвращают имя и значение последнего элемента, который был пропущен.
Обратите внимание, что QJSValueIterator итерируется только по собственным свойствам QJSValue; т.е. он не следует цепочке прототипов. Для прохождения по цепочке прототипов можно использовать цикл:
QJSValue obj = ...; // the object to iterate over
while (obj.isObject()) {
QJSValueIterator it(obj);
while (it.hasNext()) {
it.next();
qDebug() << it.name();
}
obj = obj.prototype();
} См. также QJSValue::property().
Документация по функциям-членам
QJSValueIterator::QJSValueIterator(const QJSValue &object)
Создает итератор для обхода object. Итератор устанавливается в начало последовательности свойств (перед первым свойством).
QJSValueIterator &QJSValueIterator::operator=(QJSValue &object)
Устанавливает итератор для работы с object. Итератор устанавливается в начало последовательности свойств (перед первым свойством).
QJSValueIterator::~QJSValueIterator()
Удаляет итератор.
bool QJSValueIterator::hasNext() const
Возвращает true, если существует хотя бы один элемент перед итератором (т.е. итератор не находится в конце последовательности свойств); в противном случае возвращает false.
См. также next().
QString QJSValueIterator::name() const
Возвращает имя последнего свойства, которое было пропущено с помощью next().
См. также value().
bool QJSValueIterator::next()
Перемещает итератор на одну позицию. Возвращает true, если перед итератором был хотя бы один элемент (т.е. итератор не находился уже в конце последовательности свойств); в противном случае возвращает false.
QJSValue QJSValueIterator::value() const
Возвращает значение последнего свойства, которое было пропущено с помощью next().
См. также name().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qjsvalueiterator.html