"""
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 typing
import PyQt6.sip


class QQmlParserStatus(PyQt6.sip.simplewrapper):
    """
    https://doc.qt.io/qt-6/qqmlparserstatus.html

    **Detailed Description**

    QQmlParserStatus provides a mechanism for classes instantiated by a
    **QQmlEngine**  to receive notification at key points in their creation.

    This class is often used for optimization purposes, as it allows you to
    defer an expensive operation until after all the properties have been set on
    an object. For example, QML's **Text**  element uses the parser status to
    defer text layout until all of its properties have been set (we don't want
    to layout when the `text` is assigned, and then relayout when the `font` is
    assigned, and relayout again when the `width` is assigned, and so on).

    Be aware that QQmlParserStatus methods are only called when a class is
    instantiated by a **QQmlEngine** . If you create the same class directly
    from C++, these methods will not be called automatically. To avoid this
    problem, it is recommended that you start deferring operations from
    **classBegin**  instead of from the initial creation of your class. This
    will still prevent multiple revaluations during initial binding assignment
    in QML, but will not defer operations invoked from C++.

    To use QQmlParserStatus, you must inherit both a **QObject** -derived class
    and QQmlParserStatus, and use the **Q_INTERFACES** () macro.

    class MyObject : public **QObject** , public QQmlParserStatus
        {
    Q_OBJECT
            Q_INTERFACES(QQmlParserStatus)

        public:
    MyObject(**QObject**  *parent = 0);
            // ...
            void
    classBegin();
            void componentComplete();
        };
    """

    @typing.overload
    def __init__(self) -> None:
        ...

    @typing.overload
    def __init__(self, a0: "QQmlParserStatus") -> None:
        ...

    def componentComplete(self) -> None:
        """
        https://doc.qt.io/qt-6/qqmlparserstatus.html#componentComplete

        **[pure virtual] void QQmlParserStatus::componentComplete()**

        Invoked after the root component that caused this instantiation has
        completed construction. At this point all static values and binding
        values have been assigned to the class.
        """
        ...

    def classBegin(self) -> None:
        """
        https://doc.qt.io/qt-6/qqmlparserstatus.html#classBegin

        **[pure virtual] void QQmlParserStatus::classBegin()**

        Invoked after class creation, but before any properties have been set.
        """
        ...
