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

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

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import enum
import typing
import PyQt6.sip
from PyQt6.QtWidgets import *
import enum


class QTreeWidgetItemIterator(PyQt6.sip.simplewrapper):
    """
    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** .
    """

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

    @typing.overload
    def __init__(self, it: "QTreeWidgetItemIterator") -> 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**.
        """
        ...

    @typing.overload
    def __init__(
        self, widget: QTreeWidget, flags: "QTreeWidgetItemIterator.IteratorFlag" = ...
    ) -> 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** .
        """
        ...

    @typing.overload
    def __init__(
        self, item: QTreeWidgetItem, flags: "QTreeWidgetItemIterator.IteratorFlag" = ...
    ) -> 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** .
        """
        ...

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