Класс QConcatenateTablesProxyModel
Класс QConcatenateTablesProxyModel проксирует несколько моделей-источников, конкатенируя их строки. Подробнее...
| Заголовок: | #include <QConcatenateTablesProxyModel> |
| qmake: | QT += core |
| С момента: | Qt 5.13 |
| Наследует: | QAbstractItemModel |
Этот класс был представлен в Qt 5.13.
Открытые функции
| 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().
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-5.15/qconcatenatetablesproxymodel.html