"""
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.QtDesigner, except for defaults which are replaced by "...".
"""
from typing import List
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtWidgets
import PySide6.QtDesigner

bytes = str


class QDesignerCustomWidgetCollectionInterface(object):
    """
    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** .
    """

    def __init__(self) -> None:
        ...

    def customWidgets(self) -> List[PySide6.QtDesigner.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.
        """
        ...
