Класс QAbstractProxyModel
Класс QAbstractProxyModel предоставляет базовый класс для прокси-моделей элементов, которые могут выполнять сортировку, фильтрацию или другие задачи обработки данных. Подробнее...
| Заголовок: | #include <QAbstractProxyModel> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Наследуется от: | QAbstractItemModel |
| Наследуется в: | QIdentityProxyModel, QSortFilterProxyModel, и QTransposeProxyModel |
Свойства
- sourceModel : QAbstractItemModel*
Открытые функции
| QAbstractProxyModel(QObject *parent = nullptr) | |
| virtual | ~QAbstractProxyModel() |
| virtual QModelIndex | mapFromSource(const QModelIndex &sourceIndex) const = 0 |
| virtual QItemSelection | mapSelectionFromSource(const QItemSelection &sourceSelection) const |
| virtual QItemSelection | mapSelectionToSource(const QItemSelection &proxySelection) const |
| virtual QModelIndex | mapToSource(const QModelIndex &proxyIndex) const = 0 |
| virtual void | setSourceModel(QAbstractItemModel *sourceModel) |
| QAbstractItemModel * | sourceModel() const |
Переопределённые открытые функции
| virtual QModelIndex | buddy(const QModelIndex &index) const override |
| virtual bool | canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override |
| virtual bool | canFetchMore(const QModelIndex &parent) const override |
| virtual bool | clearItemData(const QModelIndex &index) override |
| virtual QVariant | data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const override |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
| virtual void | fetchMore(const QModelIndex &parent) override |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override |
| virtual bool | hasChildren(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override |
| virtual QMap<int, QVariant> | itemData(const QModelIndex &proxyIndex) const override |
| virtual QMimeData * | mimeData(const QModelIndexList &indexes) const override |
| virtual QStringList | mimeTypes() const override |
| virtual void | revert() override |
| virtual QHash<int, QByteArray> | roleNames() const override |
| virtual bool | setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override |
| virtual bool | setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override |
| virtual bool | setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) override |
| virtual QModelIndex | sibling(int row, int column, const QModelIndex &idx) const override |
| virtual void | sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override |
| virtual QSize | span(const QModelIndex &index) const override |
| virtual bool | submit() override |
| virtual Qt::DropActions | supportedDragActions() const override |
| virtual Qt::DropActions | supportedDropActions() const override |
Сигналы
| void | sourceModelChanged() |
Защищённые функции
| QModelIndex | createSourceIndex(int row, int col, void *internalPtr) const |
Подробное описание
Этот класс определяет стандартный интерфейс, который прокси-модели должны использовать, чтобы правильно взаимодействовать с другими компонентами модели/представления. Его не следует создавать напрямую.
Все стандартные прокси-модели являются производными от класса QAbstractProxyModel. Если вам нужно создать новый класс прокси-модели, обычно лучше создать подкласс существующего класса, который обеспечивает наиболее близкое поведение к тому, которое вы хотите обеспечить.
Прокси-модели, которые фильтруют или сортируют элементы данных из исходной модели, должны быть созданы с использованием или созданием подкласса QSortFilterProxyModel.
Для создания подкласса QAbstractProxyModel необходимо реализовать mapFromSource() и mapToSource(). Функции mapSelectionFromSource() и mapSelectionToSource() необходимо переопределять только в том случае, если вам нужно поведение, отличное от поведения по умолчанию.
Примечание: Если исходная модель удалена или не указана исходная модель, прокси-модель работает с пустой моделью-заполнителем.
См. также QSortFilterProxyModel, QAbstractItemModel, и Программирование модели/представления.
END_OF_DOCUMENT_MARKERДокументация по свойствам
[bindable] sourceModel : QAbstractItemModel*
Примечание: Это свойство поддерживает привязки QProperty.
Это свойство содержит исходную модель этой модели-прокси.
Документация по членам-функциям
QAbstractProxyModel::QAbstractProxyModel(QObject *parent = nullptr)
Конструирует модель-прокси с заданным parent.
[virtual] QAbstractProxyModel::~QAbstractProxyModel()
Уничтожает модель-прокси.
[override virtual] QModelIndex QAbstractProxyModel::buddy(const QModelIndex &index) const
Переопределяет: QAbstractItemModel::buddy(const QModelIndex &index) const.
[override virtual, since 5.4] bool QAbstractProxyModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const
Переопределяет: QAbstractItemModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const.
Эта функция была добавлена в Qt 5.4.
[override virtual] bool QAbstractProxyModel::canFetchMore(const QModelIndex &parent) const
Переопределяет: QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.
[override virtual, since 6.0] bool QAbstractProxyModel::clearItemData(const QModelIndex &index)
Переопределяет: QAbstractItemModel::clearItemData(const QModelIndex &index).
Эта функция была добавлена в Qt 6.0.
[protected, since 6.2] QModelIndex QAbstractProxyModel::createSourceIndex(int row, int col, void *internalPtr) const
Эквивалентно вызову createIndex для исходной модели.
Этот метод полезен, если ваша модель-прокси хочет сохранить отношения родитель-потомок элементов в исходной модели. При переопределении mapToSource() вы можете вызвать этот метод для создания индекса для строки row и столбца col исходной модели.
Типичное использование заключается в сохранении внутреннего указателя, полученного из исходной модели, в индексе прокси-модели при переопределении mapFromSource() и использовании того же внутреннего указателя как internalPtr для восстановления исходного индекса при переопределении mapToSource().
Эта функция была добавлена в Qt 6.2.
[override virtual] QVariant QAbstractProxyModel::data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const
Переопределяет: QAbstractItemModel::data(const QModelIndex &index, int role) const.
См. также setData().
[override virtual, since 5.4] bool QAbstractProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Переопределяет: QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).
Эта функция была добавлена в Qt 5.4.
[override virtual] void QAbstractProxyModel::fetchMore(const QModelIndex &parent)
Переопределяет: QAbstractItemModel::fetchMore(const QModelIndex &parent).
[override virtual] Qt::ItemFlags QAbstractProxyModel::flags(const QModelIndex &index) const
Переопределяет: QAbstractItemModel::flags(const QModelIndex &index) const.
[override virtual] bool QAbstractProxyModel::hasChildren(const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.
[override virtual] QVariant QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Переопределяет: QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.
См. также setHeaderData().
[override virtual] QMap<int, QVariant> QAbstractProxyModel::itemData(const QModelIndex &proxyIndex) const
Переопределяет: QAbstractItemModel::itemData(const QModelIndex &index) const.
См. также setItemData().
[pure virtual invokable] QModelIndex QAbstractProxyModel::mapFromSource(const QModelIndex &sourceIndex) const
Переопределите эту функцию, чтобы вернуть индекс модели в модели-прокси, который соответствует sourceIndex из исходной модели.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также mapToSource().
[virtual invokable] QItemSelection QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const
Возвращает выбор прокси, сопоставленный с указанным sourceSelection.
Переопределите этот метод, чтобы сопоставлять исходные выделения со выделениями прокси.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
[virtual invokable] QItemSelection QAbstractProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const
Возвращает исходное выделение, сопоставленное с указанным proxySelection.
Переопределите этот метод, чтобы сопоставлять выделения прокси со исходными выделениями.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
[pure virtual invokable] QModelIndex QAbstractProxyModel::mapToSource(const QModelIndex &proxyIndex) const
Переопределите эту функцию, чтобы вернуть индекс модели в исходной модели, соответствующий proxyIndex в модели-прокси.
Примечание: Эта функция может вызываться через систему метаобъектов и из QML. См. Q_INVOKABLE.
См. также mapFromSource().
[override virtual] QMimeData *QAbstractProxyModel::mimeData(const QModelIndexList &indexes) const
Переопределяет: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.
[override virtual] QStringList QAbstractProxyModel::mimeTypes() const
Переопределяет: QAbstractItemModel::mimeTypes() const.
[override virtual] void QAbstractProxyModel::revert()
Переопределяет: QAbstractItemModel::revert().
[override virtual] QHash<int, QByteArray> QAbstractProxyModel::roleNames() const
Переопределяет: QAbstractItemModel::roleNames() const.
[override virtual] bool QAbstractProxyModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
Переопределяет: QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).
См. также data().
[override virtual] bool QAbstractProxyModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole)
Переопределяет: QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role).
См. также headerData().
[override virtual] bool QAbstractProxyModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)
Переопределяет: QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles).
См. также itemData().
[virtual] void QAbstractProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
Устанавливает указанный sourceModel для обработки прокси-моделью.
Подклассы должны вызывать beginResetModel() в начале метода, отключиться от старой модели, вызвать этот метод, подключиться к новой модели и вызвать endResetModel().
Примечание: Функция-сеттер для свойства sourceModel.
См. также sourceModel().
[override virtual] QModelIndex QAbstractProxyModel::sibling(int row, int column, const QModelIndex &idx) const
Переопределяет: QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.
[override virtual] void QAbstractProxyModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)
Переопределяет: QAbstractItemModel::sort(int column, Qt::SortOrder order).
QAbstractItemModel *QAbstractProxyModel::sourceModel() const
Возвращает модель, содержащую данные, доступные через прокси-модель.
Примечание: Функция-геттер для свойства sourceModel.
См. также setSourceModel().
[override virtual] QSize QAbstractProxyModel::span(const QModelIndex &index) const
Переопределяет: QAbstractItemModel::span(const QModelIndex &index) const.
[override virtual] bool QAbstractProxyModel::submit()
Переопределяет: QAbstractItemModel::submit().
[override virtual] Qt::DropActions QAbstractProxyModel::supportedDragActions() const
Переопределяет: QAbstractItemModel::supportedDragActions() const.
[override virtual] Qt::DropActions QAbstractProxyModel::supportedDropActions() const
Переопределяет: QAbstractItemModel::supportedDropActions() const.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qabstractproxymodel.html