Класс QModelIndex
Класс QModelIndex используется для определения расположения данных в модели данных. Подробнее...
| Заголовок: | #include <QModelIndex> |
| qmake: | QT += core |
Открытые функции
| QModelIndex() | |
| 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 |
| 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 |
Связанные нечлены
| typedef | 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
Возвращает номер столбца, на который ссылается этот индекс модели.
QVariant QModelIndex::data(int role = Qt::DisplayRole) const
Возвращает данные для заданного role для элемента, на который указывает индекс.
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
Возвращает указатель на модель, содержащую элемент, на который указывает этот индекс.
Возвращается константный указатель на модель, поскольку вызовы функций модели, не являющихся константными, могут привести к аннулированию индекса модели и, возможно, к ошибке приложения.
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().
QModelIndex QModelIndex::siblingAtColumn(int column) const
Возвращает элемент-близнец в текущем столбце в строке column. Если такого элемента-близнеца нет, возвращается недействительный QModelIndex.
Эта функция была добавлена в Qt 5.11.
См. также sibling() и siblingAtRow().
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.
Эта функция была добавлена в 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/qt-5.13/qmodelindex.html