"""
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.QtCore import *


class QAbstractProxyModel(QAbstractItemModel):
    """
    https://doc.qt.io/qt-6/qabstractproxymodel.html

    **Detailed Description**

    This class defines the standard interface that proxy models must use to be
    able to interoperate correctly with other model/view components. It is not
    supposed to be instantiated directly.

    All standard proxy models are derived from the QAbstractProxyModel class. If
    you need to create a new proxy model class, it is usually better to subclass
    an existing class that provides the closest behavior to the one you want to
    provide.

    Proxy models that filter or sort items of data from a source model should be
    created by using or subclassing **QSortFilterProxyModel** .

    To subclass QAbstractProxyModel, you need to implement **mapFromSource** ()
    and **mapToSource** (). The **mapSelectionFromSource** () and
    **mapSelectionToSource** () functions only need to be reimplemented if you
    need a behavior different from the default behavior.

    **Note:** If the source model is deleted or no source model is specified,
    the proxy model operates on a empty placeholder model.

    **See also** **QSortFilterProxyModel** , **QAbstractItemModel** , and
    **Model/View Programming** .
    """

    def __init__(self, parent: typing.Optional[QObject] = ...) -> None:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#QAbstractProxyModel

        **QAbstractProxyModel::QAbstractProxyModel(QObject * parent = nullptr)**

        Constructs a proxy model with the given **parent**.
        """
        ...

    def roleNames(self) -> typing.Dict[int, "QByteArray"]:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#roleNames

        **[override virtual] QHash<int, QByteArray>
        QAbstractProxyModel::roleNames() const**

        Reimplements: **QAbstractItemModel::roleNames() const** .
        """
        ...

    def clearItemData(self, index: QModelIndex) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#clearItemData

        **[override virtual, since 6.0] bool
        QAbstractProxyModel::clearItemData(const QModelIndex & index )**

        Reimplements: **QAbstractItemModel::clearItemData** (const QModelIndex
        &index).

        This function was introduced in Qt 6.0.
        """
        ...

    def supportedDragActions(self) -> Qt.DropAction:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#supportedDragActions

        **[override virtual] Qt::DropActions
        QAbstractProxyModel::supportedDragActions() const**

        Reimplements: **QAbstractItemModel::supportedDragActions() const** .
        """
        ...

    def dropMimeData(
        self,
        data: "QMimeData",
        action: Qt.DropAction,
        row: int,
        column: int,
        parent: QModelIndex,
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#dropMimeData

        **[override virtual, since 5.4] bool
        QAbstractProxyModel::dropMimeData(const QMimeData * data ,
        Qt::DropAction action , int row , int column , const QModelIndex &
        parent )**

        Reimplements: **QAbstractItemModel::dropMimeData** (const QMimeData
        *data, Qt::DropAction action, int row, int column, const QModelIndex
        &parent).

        This function was introduced in Qt 5.4.
        """
        ...

    def canDropMimeData(
        self,
        data: "QMimeData",
        action: Qt.DropAction,
        row: int,
        column: int,
        parent: QModelIndex,
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#canDropMimeData

        **[override virtual, since 5.4] bool
        QAbstractProxyModel::canDropMimeData(const QMimeData * data ,
        Qt::DropAction action , int row , int column , const QModelIndex &
        parent ) const**

        Reimplements: **QAbstractItemModel::canDropMimeData(const QMimeData
        *data, Qt::DropAction action, int row, int column, const QModelIndex
        &parent) const** .

        This function was introduced in Qt 5.4.
        """
        ...

    def sibling(self, row: int, column: int, idx: QModelIndex) -> QModelIndex:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#sibling

        **[override virtual] QModelIndex QAbstractProxyModel::sibling(int row ,
        int column , const QModelIndex & idx ) const**

        Reimplements: **QAbstractItemModel::sibling(int row, int column, const
        QModelIndex &index) const** .
        """
        ...

    def supportedDropActions(self) -> Qt.DropAction:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#supportedDropActions

        **[override virtual] Qt::DropActions
        QAbstractProxyModel::supportedDropActions() const**

        Reimplements: **QAbstractItemModel::supportedDropActions() const** .
        """
        ...

    def mimeTypes(self) -> typing.List[str]:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#mimeTypes

        **[override virtual] QStringList QAbstractProxyModel::mimeTypes()
        const**

        Reimplements: **QAbstractItemModel::mimeTypes() const** .
        """
        ...

    def mimeData(self, indexes: typing.Iterable[QModelIndex]) -> "QMimeData":
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#mimeData

        **[override virtual] QMimeData *QAbstractProxyModel::mimeData(const
        QModelIndexList & indexes ) const**

        Reimplements: **QAbstractItemModel::mimeData(const QModelIndexList
        &indexes) const** .
        """
        ...

    def hasChildren(self, parent: QModelIndex = ...) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#hasChildren

        **[override virtual] bool QAbstractProxyModel::hasChildren(const
        QModelIndex & parent = QModelIndex()) const**

        Reimplements: **QAbstractItemModel::hasChildren(const QModelIndex
        &parent) const** .
        """
        ...

    def span(self, index: QModelIndex) -> "QSize":
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#span

        **[override virtual] QSize QAbstractProxyModel::span(const QModelIndex &
        index ) const**

        Reimplements: **QAbstractItemModel::span(const QModelIndex &index)
        const** .
        """
        ...

    def sort(self, column: int, order: Qt.SortOrder = ...) -> None:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#sort

        **[override virtual] void QAbstractProxyModel::sort(int column ,
        Qt::SortOrder order = Qt::AscendingOrder)**

        Reimplements: **QAbstractItemModel::sort** (int column, Qt::SortOrder
        order).
        """
        ...

    def fetchMore(self, parent: QModelIndex) -> None:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#fetchMore

        **[override virtual] void QAbstractProxyModel::fetchMore(const
        QModelIndex & parent )**

        Reimplements: **QAbstractItemModel::fetchMore** (const QModelIndex
        &parent).
        """
        ...

    def canFetchMore(self, parent: QModelIndex) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#canFetchMore

        **[override virtual] bool QAbstractProxyModel::canFetchMore(const
        QModelIndex & parent ) const**

        Reimplements: **QAbstractItemModel::canFetchMore(const QModelIndex
        &parent) const** .
        """
        ...

    def buddy(self, index: QModelIndex) -> QModelIndex:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#buddy

        **[override virtual] QModelIndex QAbstractProxyModel::buddy(const
        QModelIndex & index ) const**

        Reimplements: **QAbstractItemModel::buddy(const QModelIndex &index)
        const** .
        """
        ...

    def setItemData(
        self, index: QModelIndex, roles: typing.Dict[int, typing.Any]
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#setItemData

        **[override virtual] bool QAbstractProxyModel::setItemData(const
        QModelIndex & index , const QMap<int, QVariant> & roles )**

        Reimplements: **QAbstractItemModel::setItemData** (const QModelIndex
        &index, const QMap<int, QVariant> &roles).

        **See also** **itemData** ().
        """
        ...

    def flags(self, index: QModelIndex) -> Qt.ItemFlag:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#flags

        **[override virtual] Qt::ItemFlags QAbstractProxyModel::flags(const
        QModelIndex & index ) const**

        Reimplements: **QAbstractItemModel::flags(const QModelIndex &index)
        const** .
        """
        ...

    def itemData(self, index: QModelIndex) -> typing.Dict[int, typing.Any]:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#itemData

        **[override virtual] QMap<int, QVariant>
        QAbstractProxyModel::itemData(const QModelIndex & proxyIndex ) const**

        Reimplements: **QAbstractItemModel::itemData(const QModelIndex &index)
        const** .

        **See also** **setItemData** ().
        """
        ...

    def setHeaderData(
        self,
        section: int,
        orientation: Qt.Orientation,
        value: typing.Any,
        role: int = ...,
    ) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#setHeaderData

        **[override virtual] bool QAbstractProxyModel::setHeaderData(int section
        , Qt::Orientation orientation , const QVariant & value , int role =
        Qt::EditRole)**

        Reimplements: **QAbstractItemModel::setHeaderData** (int section,
        Qt::Orientation orientation, const QVariant &value, int role).

        **See also** **headerData** ().
        """
        ...

    def headerData(
        self, section: int, orientation: Qt.Orientation, role: int = ...
    ) -> typing.Any:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#headerData

        **[override virtual] QVariant QAbstractProxyModel::headerData(int
        section , Qt::Orientation orientation , int role = Qt::DisplayRole)
        const**

        Reimplements: **QAbstractItemModel::headerData(int section,
        Qt::Orientation orientation, int role) const** .

        **See also** **setHeaderData** ().
        """
        ...

    def setData(self, index: QModelIndex, value: typing.Any, role: int = ...) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#setData

        **[override virtual] bool QAbstractProxyModel::setData(const QModelIndex
        & index , const QVariant & value , int role = Qt::EditRole)**

        Reimplements: **QAbstractItemModel::setData** (const QModelIndex &index,
        const QVariant &value, int role).

        **See also** **data** ().
        """
        ...

    def data(self, proxyIndex: QModelIndex, role: int = ...) -> typing.Any:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#data

        **[override virtual] QVariant QAbstractProxyModel::data(const
        QModelIndex & proxyIndex , int role = Qt::DisplayRole) const**

        Reimplements: **QAbstractItemModel::data(const QModelIndex &index, int
        role) const** .

        **See also** **setData** ().
        """
        ...

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

        **[override virtual] void QAbstractProxyModel::revert()**

        Reimplements: **QAbstractItemModel::revert** ().
        """
        ...

    def submit(self) -> bool:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#submit

        **[override virtual] bool QAbstractProxyModel::submit()**

        Reimplements: **QAbstractItemModel::submit** ().
        """
        ...

    def mapSelectionFromSource(self, selection: "QItemSelection") -> "QItemSelection":
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#mapSelectionFromSource

        **[virtual invokable] QItemSelection
        QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &
        sourceSelection ) const**

        Returns a proxy selection mapped from the specified **sourceSelection**.

        Reimplement this method to map source selections to proxy selections.

        **Note:** This function can be invoked via the meta-object system and
        from QML. See **Q_INVOKABLE** .
        """
        ...

    def mapSelectionToSource(self, selection: "QItemSelection") -> "QItemSelection":
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#mapSelectionToSource

        **[virtual invokable] QItemSelection
        QAbstractProxyModel::mapSelectionToSource(const QItemSelection &
        proxySelection ) const**

        Returns a source selection mapped from the specified **proxySelection**.

        Reimplement this method to map proxy selections to source selections.

        **Note:** This function can be invoked via the meta-object system and
        from QML. See **Q_INVOKABLE** .
        """
        ...

    def mapFromSource(self, sourceIndex: QModelIndex) -> QModelIndex:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#mapFromSource

        **[pure virtual invokable] QModelIndex
        QAbstractProxyModel::mapFromSource(const QModelIndex & sourceIndex )
        const**

        Reimplement this function to return the model index in the proxy model
        that corresponds to the **sourceIndex** from the source model.

        **Note:** This function can be invoked via the meta-object system and
        from QML. See **Q_INVOKABLE** .

        **See also** **mapToSource** ().
        """
        ...

    def mapToSource(self, proxyIndex: QModelIndex) -> QModelIndex:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#mapToSource

        **[pure virtual invokable] QModelIndex
        QAbstractProxyModel::mapToSource(const QModelIndex & proxyIndex )
        const**

        Reimplement this function to return the model index in the source model
        that corresponds to the **proxyIndex** in the proxy model.

        **Note:** This function can be invoked via the meta-object system and
        from QML. See **Q_INVOKABLE** .

        **See also** **mapFromSource** ().
        """
        ...

    def sourceModel(self) -> QAbstractItemModel:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#sourceModel

        **QAbstractItemModel *QAbstractProxyModel::sourceModel() const**

        Returns the model that contains the data that is available through the
        proxy model.

        **Note:** Getter function for property sourceModel.

        **See also** **setSourceModel** ().
        """
        ...

    def setSourceModel(self, sourceModel: QAbstractItemModel) -> None:
        """
        https://doc.qt.io/qt-6/qabstractproxymodel.html#setSourceModel

        **[virtual] void QAbstractProxyModel::setSourceModel(QAbstractItemModel
        * sourceModel )**

        Sets the given **sourceModel** to be processed by the proxy model.

        Subclasses should call **beginResetModel** () at the beginning of the
        method, disconnect from the old model, call this method, connect to the
        new model, and call **endResetModel** ().

        **Note:** Setter function for property **sourceModel** .

        **See also** **sourceModel** ().
        """
        ...

    @property
    def sourceModelChanged(self) -> PyQt6.QtCore.pyqtBoundSignal:
        ...
