Spec-Zone.ru › Qt

Класс QConcatenateTablesProxyModel

Класс QConcatenateTablesProxyModel проксирует несколько моделей-источников, конкатенируя их строки. Подробнее...

Заголовок: #include <QConcatenateTablesProxyModel>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С момента: Qt 5.13
Наследует: QAbstractItemModel
  • Список всех членов, включая унаследованные

Открытые функции

QConcatenateTablesProxyModel(QObject *parent = nullptr)
virtual ~QConcatenateTablesProxyModel()
void addSourceModel(QAbstractItemModel *sourceModel)
QModelIndex mapFromSource(const QModelIndex &sourceIndex) const
QModelIndex mapToSource(const QModelIndex &proxyIndex) const
void removeSourceModel(QAbstractItemModel *sourceModel)
QList<QAbstractItemModel *> sourceModels() const

Переопределённые открытые функции

virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) 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 QModelIndex parent(const QModelIndex &index) const override
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override
virtual bool setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles) override
virtual QSize span(const QModelIndex &index) const override

Подробное описание

QConcatenateTablesProxyModel принимает несколько моделей-источников и конкатенирует их строки.

Другими словами, прокси будет содержать все строки первой модели-источника, затем все строки второй модели-источника и так далее.

Если модели-источники не имеют одинакового количества столбцов, прокси будет иметь только столько столбцов, сколько у модели-источника с наименьшим количеством столбцов. Дополнительные столбцы в других моделях-источниках будут просто проигнорированы.

Модели-источники можно добавлять и удалять во время выполнения, и количество столбцов корректируется соответственно.

Этот прокси не наследуется от QAbstractProxyModel, поскольку он использует несколько моделей-источников, а не одну.

Поддерживаются только плоские модели (списки и таблицы), модели дерева не поддерживаются.

См. также QAbstractProxyModel, Программирование с использованием моделей/представлений, QIdentityProxyModel и QAbstractItemModel.

Документация функций-членов

QConcatenateTablesProxyModel::QConcatenateTablesProxyModel(QObject *parent = nullptr)

Конструирует прокси-модель для конкатенации строк с заданным parent.

[virtual] QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel()

Удаляет этот прокси-модель.

void QConcatenateTablesProxyModel::addSourceModel(QAbstractItemModel *sourceModel)

Добавляет модель-источник sourceModel ниже всех ранее добавленных моделей-источников.

Владение sourceModel не затрагивается этим действием.

Одна и та же модель-источник не может быть добавлена более одного раза.

[override virtual] bool QConcatenateTablesProxyModel::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.

[override virtual] int QConcatenateTablesProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const

Переопределяет: QAbstractItemModel::columnCount(const QModelIndex &parent) const.

Этот метод возвращает количество столбцов модели-источника с наименьшим количеством столбцов.

[override virtual] QVariant QConcatenateTablesProxyModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

Переопределяет: QAbstractItemModel::data(const QModelIndex &index, int role) const.

См. также setData().

[override virtual] bool QConcatenateTablesProxyModel::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).

QConcatenateTablesProxyModel обрабатывает отпускание на элементе, между элементами и после последнего элемента. Во всех случаях вызов передаётся в базовый модель-источник. При отпускании на элементе вызывается модель-источник для этого элемента. При отпускании между элементами вызывается модель-источник, расположенная непосредственно под позицией отпускания. При отпускании после последнего элемента вызывается последняя модель-источник.

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

Переопределяет: QAbstractItemModel::flags(const QModelIndex &index) const.

Возвращает флаги для данного индекса. Если index корректен, флаги берутся из модели-источника для этого index. Если index некорректен (например, для определения, разрешено ли отпускание на пустую область в представлении), возвращаются флаги из первой модели.

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

Переопределяет: QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

Этот метод возвращает данные горизонтальной заголовка для первой модели-источника и данные вертикальной заголовка для модели-источника, соответствующей каждой строке.

[override virtual] QModelIndex QConcatenateTablesProxyModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

Переопределяет: QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

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

Переопределяет: QAbstractItemModel::itemData(const QModelIndex &index) const.

См. также setItemData().

QModelIndex QConcatenateTablesProxyModel::mapFromSource(const QModelIndex &sourceIndex) const

Возвращает прокси-индекс для заданного sourceIndex, который может быть из любой из моделей-источников.

QModelIndex QConcatenateTablesProxyModel::mapToSource(const QModelIndex &proxyIndex) const

Возвращает индекс источника для заданного proxyIndex.

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

Переопределяет: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

Вызов передаётся модели-источнику первого индекса в списке indexes.

Важно: обратите внимание, что этот прокси поддерживает перетаскивание только одной строки. Будет выполнена проверка, если вызывается с индексами из нескольких строк, потому что перетаскивание строк, которые могут происходить из разных моделей-источников, не может быть реализовано обобщённо этим прокси-моделью. Каждый фрагмент данных в QMimeData должен быть объединён, что зависит от типа данных. Переопределите этот метод в подклассе, если вы хотите поддерживать перетаскивание нескольких строк.

[override virtual] QStringList QConcatenateTablesProxyModel::mimeTypes() const

Переопределяет: QAbstractItemModel::mimeTypes() const.

Этот метод возвращает типы MIME для первой модели-источника.

[override virtual] QModelIndex QConcatenateTablesProxyModel::parent(const QModelIndex &index) const

Переопределяет: QAbstractItemModel::parent(const QModelIndex &index) const.

void QConcatenateTablesProxyModel::removeSourceModel(QAbstractItemModel *sourceModel)

Удаляет модель-источник sourceModel, которая ранее была добавлена в этот прокси.

Владение sourceModel не затрагивается этим действием.

[override virtual] int QConcatenateTablesProxyModel::rowCount(const QModelIndex &parent = QModelIndex()) const

Переопределяет: QAbstractItemModel::rowCount(const QModelIndex &parent) const.

[override virtual] bool QConcatenateTablesProxyModel::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 QConcatenateTablesProxyModel::setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles)

Переопределяет: QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles).

См. также itemData().

[since 5.15] QList<QAbstractItemModel *> QConcatenateTablesProxyModel::sourceModels() const

Возвращает список моделей, которые были добавлены в качестве моделей-источников для этой прокси-модели.

Эта функция была добавлена в Qt 5.15.

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

Переопределяет: QAbstractItemModel::span(const QModelIndex &index) const.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qconcatenatetablesproxymodel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API