"""
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
"""
import PySide6.QtCore
import PySide6.QtGui
import PySide6.QtWidgets
import PySide6.QtDesigner

bytes = str


class QAbstractExtensionManager(object):
    """
    https://doc.qt.io/qt-6/qabstractextensionmanager.html

    **Detailed Description**

    QAbstractExtensionManager is not intended to be instantiated directly; use
    the **QExtensionManager**  instead.

    In **Qt Designer** , extension are not created until they are required. For
    that reason, when implementing a custom extension, you must also create a
    **QExtensionFactory** , i.e a class that is able to make an instance of your
    extension, and register it using **Qt Designer** 's **extension manager** .

    When an extension is required, **Qt Designer** 's **extension manager**
    will run through all its registered factories calling
    **QExtensionFactory::createExtension** () for each until the first one that
    is able to create the requested extension for the selected object, is found.
    This factory will then make an instance of the extension.

    **See also** **QExtensionManager**  and **QExtensionFactory** .
    """

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

    def extension(
        self, object: PySide6.QtCore.QObject, iid: str
    ) -> PySide6.QtCore.QObject:
        """
        https://doc.qt.io/qt-6/qabstractextensionmanager.html#extension

        **[pure virtual] QObject *QAbstractExtensionManager::extension(QObject *
        object , const QString & iid ) const**

        Returns the extension, specified by **iid** , for the given **object**.
        """
        ...

    def registerExtensions(
        self, factory: PySide6.QtDesigner.QAbstractExtensionFactory, iid: str
    ) -> None:
        """
        https://doc.qt.io/qt-6/qabstractextensionmanager.html#registerExtensions

        **[pure virtual] void
        QAbstractExtensionManager::registerExtensions(QAbstractExtensionFactory
        * factory , const QString & iid )**

        Register the given extension **factory** with the extension specified by
        **iid**.
        """
        ...

    def unregisterExtensions(
        self, factory: PySide6.QtDesigner.QAbstractExtensionFactory, iid: str
    ) -> None:
        """
        https://doc.qt.io/qt-6/qabstractextensionmanager.html#unregisterExtensio
        ns

        **[pure virtual] void QAbstractExtensionManager::unregisterExtensions(QA
        bstractExtensionFactory * factory , const QString & iid )**

        Unregister the given **factory** with the extension specified by
        **iid**.
        """
        ...
