Класс 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) |
Переопределенные открытые функции
| 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().
[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.14/qconcatenatetablesproxymodel.html