"""
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

Generated by BaiJiFeiLong@gmail.com

Licence: GPLv3
"""
from enum import Enum
from typing import Union, overload
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtWidgets

bytes = str


class QTreeWidgetItemIterator(object):
    """
    https://doc.qt.io/qt-6/qtreewidgetitemiterator.html

    **Detailed Description**

    The iterator will walk the items in a pre-order traversal order, thus
    visiting the parent node **before** it continues to the child nodes.

    For example, the following code examples each item in a tree, checking the
    text in the first column against a user-specified search string:

    **QTreeWidgetItemIterator**  it(treeWidget);
            while (*it) {
    if ((*it)->text(0) == itemText)
                    (*it)->setSelected(true);
    ++it;
            }

    It is also possible to filter out certain types of node by passing certain
    **flags**  to the constructor of QTreeWidgetItemIterator.

    **See also** **QTreeWidget** , **Model/View Programming** , and
    **QTreeWidgetItem** .
    """

    All: QTreeWidgetItemIterator.IteratorFlag = ...
    Hidden: QTreeWidgetItemIterator.IteratorFlag = ...
    NotHidden: QTreeWidgetItemIterator.IteratorFlag = ...
    Selected: QTreeWidgetItemIterator.IteratorFlag = ...
    Unselected: QTreeWidgetItemIterator.IteratorFlag = ...
    Selectable: QTreeWidgetItemIterator.IteratorFlag = ...
    NotSelectable: QTreeWidgetItemIterator.IteratorFlag = ...
    DragEnabled: QTreeWidgetItemIterator.IteratorFlag = ...
    DragDisabled: QTreeWidgetItemIterator.IteratorFlag = ...
    DropEnabled: QTreeWidgetItemIterator.IteratorFlag = ...
    DropDisabled: QTreeWidgetItemIterator.IteratorFlag = ...
    HasChildren: QTreeWidgetItemIterator.IteratorFlag = ...
    NoChildren: QTreeWidgetItemIterator.IteratorFlag = ...
    Checked: QTreeWidgetItemIterator.IteratorFlag = ...
    NotChecked: QTreeWidgetItemIterator.IteratorFlag = ...
    Enabled: QTreeWidgetItemIterator.IteratorFlag = ...
    Disabled: QTreeWidgetItemIterator.IteratorFlag = ...
    Editable: QTreeWidgetItemIterator.IteratorFlag = ...
    NotEditable: QTreeWidgetItemIterator.IteratorFlag = ...
    UserFlag: QTreeWidgetItemIterator.IteratorFlag = ...

    class IteratorFlag(Enum):
        All: QTreeWidgetItemIterator.IteratorFlag = ...
        Hidden: QTreeWidgetItemIterator.IteratorFlag = ...
        NotHidden: QTreeWidgetItemIterator.IteratorFlag = ...
        Selected: QTreeWidgetItemIterator.IteratorFlag = ...
        Unselected: QTreeWidgetItemIterator.IteratorFlag = ...
        Selectable: QTreeWidgetItemIterator.IteratorFlag = ...
        NotSelectable: QTreeWidgetItemIterator.IteratorFlag = ...
        DragEnabled: QTreeWidgetItemIterator.IteratorFlag = ...
        DragDisabled: QTreeWidgetItemIterator.IteratorFlag = ...
        DropEnabled: QTreeWidgetItemIterator.IteratorFlag = ...
        DropDisabled: QTreeWidgetItemIterator.IteratorFlag = ...
        HasChildren: QTreeWidgetItemIterator.IteratorFlag = ...
        NoChildren: QTreeWidgetItemIterator.IteratorFlag = ...
        Checked: QTreeWidgetItemIterator.IteratorFlag = ...
        NotChecked: QTreeWidgetItemIterator.IteratorFlag = ...
        Enabled: QTreeWidgetItemIterator.IteratorFlag = ...
        Disabled: QTreeWidgetItemIterator.IteratorFlag = ...
        Editable: QTreeWidgetItemIterator.IteratorFlag = ...
        NotEditable: QTreeWidgetItemIterator.IteratorFlag = ...
        UserFlag: QTreeWidgetItemIterator.IteratorFlag = ...

    class IteratorFlags(object):
        ...

    @overload
    def __init__(
        self,
        it: Union[
            (
                PySide6.QtWidgets.QTreeWidgetItemIterator,
                PySide6.QtWidgets.QTreeWidget,
                PySide6.QtWidgets.QTreeWidgetItem,
            )
        ],
    ) -> None:
        """
        https://doc.qt.io/qt-6/qtreewidgetitemiterator.html#QTreeWidgetItemItera
        tor

        **QTreeWidgetItemIterator::QTreeWidgetItemIterator(const
        QTreeWidgetItemIterator & it )**

        Constructs an iterator for the same **QTreeWidget**  as **it**. The
        current iterator item is set to point on the current item of **it**.
        """
        ...

    @overload
    def __init__(
        self,
        item: PySide6.QtWidgets.QTreeWidgetItem,
        flags: PySide6.QtWidgets.QTreeWidgetItemIterator.IteratorFlags = ...,
    ) -> None:
        """
        https://doc.qt.io/qt-6/qtreewidgetitemiterator.html#QTreeWidgetItemItera
        tor-1

        **QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidget * widget
        , QTreeWidgetItemIterator::IteratorFlags flags = All)**

        Constructs an iterator for the given **widget** that uses the specified
        **flags** to determine which items are found during iteration. The
        iterator is set to point to the first top-level item contained in the
        widget, or the next matching item if the top-level item doesn't match
        the flags.

        **See also** **QTreeWidgetItemIterator::IteratorFlag** .
        """
        ...

    @overload
    def __init__(
        self,
        widget: PySide6.QtWidgets.QTreeWidget,
        flags: PySide6.QtWidgets.QTreeWidgetItemIterator.IteratorFlags = ...,
    ) -> None:
        """
        https://doc.qt.io/qt-6/qtreewidgetitemiterator.html#QTreeWidgetItemItera
        tor-2

        **QTreeWidgetItemIterator::QTreeWidgetItemIterator(QTreeWidgetItem *
        item , QTreeWidgetItemIterator::IteratorFlags flags = All)**

        Constructs an iterator for the given **item** that uses the specified
        **flags** to determine which items are found during iteration. The
        iterator is set to point to **item** , or the next matching item if
        **item** doesn't match the flags.

        **See also** **QTreeWidgetItemIterator::IteratorFlag** .
        """
        ...

    @staticmethod
    def __copy__() -> None:
        ...

    def __iadd__(self, n: int) -> PySide6.QtWidgets.QTreeWidgetItemIterator:
        ...

    def __isub__(self, n: int) -> PySide6.QtWidgets.QTreeWidgetItemIterator:
        ...

    def __iter__(self) -> object:
        ...

    def __next__(self) -> object:
        ...

    def value(self) -> PySide6.QtWidgets.QTreeWidgetItem:
        ...
