"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

Generated by BaiJiFeiLong@gmail.com

Licence: GPLv3
"""
"""
This file contains the exact signatures for all functions in module
PySide6.QtQml, except for defaults which are replaced by "...".
"""
from typing import Union
import PySide6.QtCore
import PySide6.QtNetwork
import PySide6.QtQml

bytes = str


class QJSValueIterator(object):
    """
    https://doc.qt.io/qt-6/qjsvalueiterator.html

    **Detailed Description**

    The QJSValueIterator constructor takes a **QJSValue**  as argument. After
    construction, the iterator is located at the very beginning of the sequence
    of properties. Here's how to iterate over all the properties of a
    **QJSValue** :

    **QJSValue**  object;
        ...
        **QJSValueIterator**  it(object);
    while (it.hasNext()) {
            it.next();
            **qDebug** () << it.name()
    << ": " << it.value().toString();
        }

    The **next** () advances the iterator. The **name** () and **value** ()
    functions return the name and value of the last item that was jumped over.

    Note that QJSValueIterator only iterates over the **QJSValue** 's own
    properties; i.e. it does not follow the prototype chain. You can use a loop
    like this to follow the prototype chain:

    **QJSValue**  obj = ...; // the object to iterate over
        while
    (obj.isObject()) {
            **QJSValueIterator**  it(obj);
            while
    (it.hasNext()) {
                it.next();
                **qDebug** () <<
    it.name();
            }
            obj = obj.prototype();
        }

    **See also** **QJSValue::property** ().
    """

    def __init__(
        self,
        value: Union[
            PySide6.QtQml.QJSValue,
            PySide6.QtQml.QJSValue.SpecialValue,
            str,
            bytes,
            float,
            int,
        ],
    ) -> None:
        """
        https://doc.qt.io/qt-6/qjsvalueiterator.html#QJSValueIterator

        **QJSValueIterator::QJSValueIterator(const QJSValue & object )**

        Constructs an iterator for traversing **object**. The iterator is set to
        be at the front of the sequence of properties (before the first
        property).
        """
        ...

    def hasNext(self) -> bool:
        """
        https://doc.qt.io/qt-6/qjsvalueiterator.html#hasNext

        **bool QJSValueIterator::hasNext() const**

        Returns true if there is at least one item ahead of the iterator (i.e.
        the iterator is **not** at the back of the property sequence); otherwise
        returns false.

        **See also** **next** ().
        """
        ...

    def name(self) -> str:
        """
        https://doc.qt.io/qt-6/qjsvalueiterator.html#name

        **QString QJSValueIterator::name() const**

        Returns the name of the last property that was jumped over using
        **next** ().

        **See also** **value** ().
        """
        ...

    def next(self) -> bool:
        """
        https://doc.qt.io/qt-6/qjsvalueiterator.html#next

        **bool QJSValueIterator::next()**

        Advances the iterator by one position. Returns true if there was at
        least one item ahead of the iterator (i.e. the iterator was **not**
        already at the back of the property sequence); otherwise returns false.

        **See also** **hasNext** () and **name** ().
        """
        ...

    def value(self) -> PySide6.QtQml.QJSValue:
        """
        https://doc.qt.io/qt-6/qjsvalueiterator.html#value

        **QJSValue QJSValueIterator::value() const**

        Returns the value of the last property that was jumped over using
        **next** ().

        **See also** **name** ().
        """
        ...
