"""
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
from PyQt6.QtDesigner import *


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

    **Detailed Description**

    When implementing a custom widget plugin, you build it as a separate
    library. If you want to include several custom widget plugins in the same
    library, you must in addition subclass
    QDesignerCustomWidgetCollectionInterface.

    QDesignerCustomWidgetCollectionInterface contains one single function
    returning a list of the collection's **QDesignerCustomWidgetInterface**
    objects. For example, if you have several custom widgets `CustomWidgetOne`,
    `CustomWidgetTwo` and `CustomWidgetThree`, the class definition may look
    like this:

    #include customwidgetoneinterface.h
        #include customwidgettwointerface.h
    #include customwidgetthreeinterface.h

        #include
    <QtDesigner/qtdesigner.h>
        #include <QtCore/qplugin.h>

        class
    MyCustomWidgets: public **QObject** , public
    **QDesignerCustomWidgetCollectionInterface**
        {
            Q_OBJECT
    Q_PLUGIN_METADATA(IID "org.qt-
    project.Qt.QDesignerCustomWidgetCollectionInterface")
    Q_INTERFACES(**QDesignerCustomWidgetCollectionInterface** )

        public:
    MyCustomWidgets(**QObject**  *parent = 0);

            **QList**
    <**QDesignerCustomWidgetInterface** *> customWidgets() const override;
    private:
            **QList** <**QDesignerCustomWidgetInterface** *> widgets;
    };

    In the class constructor you add the interfaces to your custom widgets to
    the list which you return in the **customWidgets** () function:

    MyCustomWidgets::MyCustomWidgets(**QObject**  *parent)
                :
    **QObject** (parent)
        {
            widgets.append(new
    CustomWidgetOneInterface(this));
            widgets.append(new
    CustomWidgetTwoInterface(this));
            widgets.append(new
    CustomWidgetThreeInterface(this));
        }

        **QList**
    <**QDesignerCustomWidgetInterface** *> MyCustomWidgets::customWidgets()
    const
        {
            return widgets;
        }

    Note that instead of exporting each custom widget plugin using the
    **Q_PLUGIN_METADATA** () macro, you export the entire collection. The
    **Q_PLUGIN_METADATA** () macro ensures that **Qt Designer** can access and
    construct the custom widgets. Without this macro, there is no way for **Qt
    Designer** to use them.

    **See also** **QDesignerCustomWidgetInterface**  and **Creating Custom
    Widgets for Qt Designer** .
    """

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

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

    def customWidgets(self) -> typing.List[QDesignerCustomWidgetInterface]:
        """
        https://doc.qt.io/qt-6/qdesignercustomwidgetcollectioninterface.html#cus
        tomWidgets

        **[pure virtual] QList<QDesignerCustomWidgetInterface *>
        QDesignerCustomWidgetCollectionInterface::customWidgets() const**

        Returns a list of interfaces to the collection's custom widgets.
        """
        ...
