Класс QModelIndex
Класс QModelIndex используется для поиска данных в модели данных. Подробнее...
| Заголовок: | #include <QModelIndex> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Открытые функции
| QModelIndex() | |
| int | column() const |
| const void * | constInternalPointer() const |
| QVariant | data(int role = Qt::DisplayRole) const |
| Qt::ItemFlags | flags() const |
| quintptr | internalId() const |
| void * | internalPointer() const |
| bool | isValid() const |
| const QAbstractItemModel * | model() const |
| void | multiData(QModelRoleDataSpan roleDataSpan) const |
| QModelIndex | parent() const |
| int | row() const |
| QModelIndex | sibling(int row, int column) const |
| QModelIndex | siblingAtColumn(int column) const |
| QModelIndex | siblingAtRow(int row) const |
| bool | operator!=(const QModelIndex &other) const |
| bool | operator<(const QModelIndex &other) const |
| bool | operator==(const QModelIndex &other) const |
Связанные нечлены
| QModelIndexList |
Подробное описание
Этот класс используется в качестве индекса в моделях элементов, производных от QAbstractItemModel. Индекс используется представлениями элементов, делегатами и моделями выделения для поиска элемента в модели.
Новые объекты QModelIndex создаются моделью с помощью функции QAbstractItemModel::createIndex(). Недействительный индекс модели можно создать с конструктором QModelIndex. Недействительные индексы часто используются в качестве родительских индексов при ссылке на верхнеуровневые элементы в модели.
Индексы модели ссылаются на элементы в моделях и содержат всю информацию, необходимую для указания их расположения в этих моделях. Каждый индекс находится в заданной строке и столбце и может иметь родительский индекс; для получения этой информации используйте row(), column() и parent(). Каждый верхнеуровневый элемент в модели представлен индексом модели, у которого нет родительского индекса; в этом случае parent() вернёт недействительный индекс модели, эквивалентный индексу, созданному с помощью конструктора QModelIndex() с нулевым аргументом.
Чтобы получить индекс модели, который ссылается на существующий элемент в модели, вызовите QAbstractItemModel::index() со значениями требуемой строки и столбца и индексом родительской модели. При ссылке на верхнеуровневые элементы в модели в качестве родительского индекса укажите QModelIndex().
Функция model() возвращает модель, на которую ссылается индекс, в виде QAbstractItemModel. Функция child() используется для проверки элементов, находящихся под индексом в модели. Функция sibling() позволяет перемещаться по элементам модели на том же уровне, что и индекс.
Примечание: Индексы модели следует использовать немедленно и затем отбрасывать. Не следует полагаться на то, что индексы останутся действительными после вызова функций модели, изменяющих структуру модели или удаляющих элементы. Если вам нужно сохранить индекс модели со временем, используйте QPersistentModelIndex.
См. также Программирование моделей/представлений, QPersistentModelIndex и QAbstractItemModel.
Документация по функциям-членам
QModelIndex::QModelIndex()
Создаёт новый пустой индекс модели. Этот тип индекса модели используется для указания того, что позиция в модели недействительна.
См. также isValid() и QAbstractItemModel.
int QModelIndex::column() const
Возвращает столбец, на который указывает этот индекс модели.
const void *QModelIndex::constInternalPointer() const
Возвращает указатель const void * используемый моделью для сопоставления индекса с внутренней структурой данных.
См. также QAbstractItemModel::createIndex().
QVariant QModelIndex::data(int role = Qt::DisplayRole) const
Возвращает данные для заданного role для элемента, на который указывает индекс.
Qt::ItemFlags QModelIndex::flags() const
Возвращает флаги для элемента, на который указывает индекс.
quintptr QModelIndex::internalId() const
Возвращает quintptr используемый моделью для сопоставления индекса с внутренней структурой данных.
См. также QAbstractItemModel::createIndex().
void *QModelIndex::internalPointer() const
Возвращает указатель void * используемый моделью для сопоставления индекса с внутренней структурой данных.
См. также QAbstractItemModel::createIndex().
bool QModelIndex::isValid() const
Возвращает true если данный индекс модели действителен; в противном случае возвращает false.
Действительный индекс принадлежит модели и имеет неотрицательные значения строки и столбца.
См. также model(), row() и column().
const QAbstractItemModel *QModelIndex::model() const
Возвращает указатель на модель, содержащую элемент, на который ссылается этот индекс.
Возвращается указатель на модель const, так как вызовы функций модели, не являющихся const, могут сделать индекс модели недействительным и потенциально привести к сбою приложения.
[since 6.0] void QModelIndex::multiData(QModelRoleDataSpan roleDataSpan) const
Заполняет заданный roleDataSpan для элемента, на который указывает индекс.
Эта функция была введена в Qt 6.0.
QModelIndex QModelIndex::parent() const
Возвращает родителя индекса модели или QModelIndex() если он не имеет родителя.
См. также sibling() и model().
int QModelIndex::row() const
Возвращает строку, на которую указывает этот индекс модели.
QModelIndex QModelIndex::sibling(int row, int column) const
Возвращает брата/сестру по позиции row и column. Если брата/сестры в этой позиции нет, возвращается недействительный QModelIndex.
См. также parent(), siblingAtColumn() и siblingAtRow().
[since 5.11] QModelIndex QModelIndex::siblingAtColumn(int column) const
Возвращает соседний элемент по столбцу column для текущей строки. Если элемента по этому положению нет, возвращается недопустимый QModelIndex.
Эта функция была добавлена в Qt 5.11.
См. также sibling() и siblingAtRow().
[since 5.11] QModelIndex QModelIndex::siblingAtRow(int row) const
Возвращает соседний элемент по строке row для текущего столбца. Если элемента по этому положению нет, возвращается недопустимый QModelIndex.
Эта функция была добавлена в Qt 5.11.
См. также sibling() и siblingAtColumn().
bool QModelIndex::operator!=(const QModelIndex &other) const
Возвращает true , если этот индекс модели не ссылается на то же место, что и индекс модели other; в противном случае возвращает false.
bool QModelIndex::operator<(const QModelIndex &other) const
Возвращает true , если этот индекс модели меньше, чем индекс модели other; в противном случае возвращает false.
Вычисление меньше не имеет непосредственной пользы для разработчиков — способ сравнения индексов с разными родителями не определен. Этот оператор существует только для того, чтобы класс можно было использовать с QMap.
bool QModelIndex::operator==(const QModelIndex &other) const
Возвращает true , если этот индекс модели ссылается на то же место, что и индекс модели other; в противном случае возвращает false.
При сравнении с другим индексом модели используются внутренний указатель на данные, значения строки, столбца и модели.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qmodelindex.html