Класс QModelIndex
Класс QModelIndex используется для поиска данных в модели данных. Подробнее...
| Заголовок: | #include <QModelIndex> |
| qmake: | QT += core |
Открытые функции
| QModelIndex() | |
| QModelIndex | child(int row, int column) const |
| int | column() 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 |
| QModelIndex | parent() const |
| int | row() const |
| QModelIndex | sibling(int row, int column) const |
| bool | operator!=(const QModelIndex &other) const |
| bool | operator<(const QModelIndex &other) const |
| bool | operator==(const QModelIndex &other) const |
Связанные нечлены
| typedef | QModelIndexList |
Подробное описание
Класс QModelIndex используется для поиска данных в модели данных.
Этот класс используется в качестве индекса в моделях элементов, производных от QAbstractItemModel. Индекс используется представлениями элементов, делегатами и моделями выделения для поиска элемента в модели.
Новые объекты QModelIndex создаются моделью с помощью функции QAbstractItemModel::createIndex(). Недействительный индекс модели можно создать с помощью конструктора QModelIndex. Недействительные индексы часто используются в качестве родительских индексов при ссылке на элементы верхнего уровня в модели.
Индексы модели ссылаются на элементы в моделях и содержат всю необходимую информацию для указания их местоположения в этих моделях. Каждый индекс находится в заданной строке и столбце и может иметь родительский индекс; используйте row(), column() и parent(), чтобы получить эту информацию. Каждый элемент верхнего уровня в модели представлен индексом модели, у которого нет родительского индекса; в этом случае parent() вернет недействительный индекс модели, эквивалентный индексу, созданному с помощью формы конструктора QModelIndex() с нулевым аргументом.
Чтобы получить индекс модели, который ссылается на существующий элемент в модели, вызовите QAbstractItemModel::index() со значениями необходимой строки и столбца и индексом родителя модели. При ссылке на элементы верхнего уровня в модели в качестве родительского индекса передайте QModelIndex().
Функция model() возвращает модель, на которую ссылается индекс, как QAbstractItemModel. Функция child() используется для проверки элементов, находящихся под индексом в модели. Функция sibling() позволяет проходить по элементам в модели на том же уровне, что и индекс.
Примечание: Индексы моделей следует использовать немедленно и затем отбрасывать. Не следует полагаться на индексы, чтобы они оставались действительными после вызова функций модели, изменяющих структуру модели или удаляющих элементы. Если вам нужно сохранить индекс модели со временем, используйте QPersistentModelIndex.
См. также Программирование с использованием моделей/представлений, QPersistentModelIndex и QAbstractItemModel.
Документация по функциям-членам
QModelIndex::QModelIndex()
Создает новый пустой индекс модели. Этот тип индекса модели используется для указания того, что позиция в модели недействительна.
См. также isValid() и QAbstractItemModel.
QModelIndex QModelIndex::child(int row, int column) const
Возвращает дочерний элемент индекса модели, хранящийся в заданной строке и столбце.
Примечание: Эта функция не работает для недействительного индекса модели, который часто используется в качестве корневого индекса.
См. также parent() и sibling().
int QModelIndex::column() const
Возвращает столбец, на который ссылается этот индекс модели.
QVariant QModelIndex::data(int role = Qt::DisplayRole) const
Возвращает данные для заданного роли для элемента, на который ссылается индекс.
Qt::ItemFlags QModelIndex::flags() const
Возвращает флаги для элемента, на который ссылается индекс.
Эта функция была введена в Qt 4.2.
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, могут сделать индекс модели недействительным и, возможно, привести к сбою приложения.
QModelIndex QModelIndex::parent() const
Возвращает родителя индекса модели или QModelIndex(), если у него нет родителя.
См. также child(), sibling() и model().
int QModelIndex::row() const
Возвращает строку, на которую ссылается этот индекс модели.
QModelIndex QModelIndex::sibling(int row, int column) const
Возвращает брата/сестру в строке и столбце. Если в этом положении нет брата/сестры, возвращается недействительный QModelIndex.
bool QModelIndex::operator!=(const QModelIndex &other) const
Возвращает true, если этот индекс модели не ссылается на то же расположение, что и индекс модели other; в противном случае возвращает false.
bool QModelIndex::operator<(const QModelIndex &other) const
Возвращает true если этот индекс модели меньше индекса модели other; в противном случае возвращает false.
Вычисление меньше не имеет прямой пользы для разработчиков — способ сравнения индексов с разными родителями не определен. Этот оператор существует только для того, чтобы класс можно было использовать с QMap.
Эта функция была введена в Qt 4.1.
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/archives/qt-5.6/qmodelindex.html