Класс 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