QModelIndex Class
QModelIndex 클래스는 데이터 모델 내에서 데이터를 찾는 데 사용됩니다. 더 보기...
| 헤더: | #include <QModelIndex> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
QModelIndex 비교
| 범주 | 비교 가능한 유형 |
|---|---|
| strong | QModelIndex |
공개 함수
| 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 |
(since 6.0) 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 |
관련 비회원
| QModelIndexList | |
| bool | operator!=(const QModelIndex &lhs, const QModelIndex &rhs) |
| bool | operator<(const QModelIndex &lhs, const QModelIndex &rhs) |
| bool | operator==(const QModelIndex &lhs, const QModelIndex &rhs) |
상세 설명
이 클래스는 ` QAbstractItemModel`에서 파생된 항목 모델에 대한 인덱스로 사용됩니다. 이 인덱스는 항목 뷰, 델리게이트 및 선택 모델이 모델 내에서 항목을 찾는 데 사용됩니다.
새로운 QModelIndex 객체는 모델이 QAbstractItemModel::createIndex() 함수를 사용하여 생성합니다. QModelIndex 생성자를 사용하여 유효하지 않은 모델 인덱스를 생성할 수 있습니다. 유효하지 않은 인덱스는 모델 내 최상위 항목을 참조할 때 부모 인덱스로 자주 사용됩니다.
모델 인덱스는 모델 내의 항목을 가리키며, 해당 모델 내에서 항목의 위치를 지정하는 데 필요한 모든 정보를 포함합니다. 각 인덱스는 지정된 행과 열에 위치하며, 부모 인덱스를 가질 수 있습니다. 이 정보를 얻으려면 row(), column() 및 parent()을 사용합니다. 모델 내의 각 최상위 항목은 부모 인덱스가 없는 모델 인덱스로 표현됩니다. 이 경우, ` parent()`는 유효하지 않은 모델 인덱스를 반환하며, 이는 `QModelIndex()` 생성자의 인자 없는 형태로 생성된 인덱스와 동일합니다.
모델 내의 기존 항목을 참조하는 모델 인덱스를 얻으려면, 필요한 행 및 열 값과 부모의 모델 인덱스를 전달하여 QAbstractItemModel::index()를 호출하십시오. 모델의 최상위 항목을 참조할 때는 QModelIndex()를 부모 인덱스로 지정하십시오.
model() 함수는 인덱스가 참조하는 모델을 ` QAbstractItemModel`로 반환합니다. `child()` 함수는 모델 내에서 해당 인덱스 아래에 있는 항목을 확인하는 데 사용됩니다. ` sibling()` 함수를 사용하면 인덱스와 같은 레벨에 있는 모델 내의 항목을 순회할 수 있습니다.
참고: 모델 인덱스는 즉시 사용한 후 폐기해야 합니다. 모델의 구조를 변경하거나 항목을 삭제하는 모델 함수를 호출한 후에도 인덱스가 유효하게 유지될 것이라고 기대해서는 안 됩니다. 모델 인덱스를 장기간 유지해야 하는 경우 QPersistentModelIndex 를 사용하십시오.
관련 항목: Model/View 프로그래밍, QPersistentModelIndex, QAbstractItemModel.
멤버 함수 문서
[constexpr noexcept] QModelIndex::QModelIndex()
새로운 빈 모델 인덱스를 생성합니다. 이 유형의 모델 인덱스는 모델 내의 해당 위치가 유효하지 않음을 나타내는 데 사용됩니다.
isValid() 및 QAbstractItemModel도 참조하십시오 .
[constexpr noexcept] int QModelIndex::column() const
이 모델 인덱스가 가리키는 열을 반환합니다.
[noexcept] const void *QModelIndex::constInternalPointer() const
모델이 인덱스를 내부 데이터 구조와 연결하는 데 사용하는 ` const void ` * 포인터를 반환합니다.
QAbstractItemModel::createIndex()도 참조하십시오 .
QVariant QModelIndex::data(int role = Qt::DisplayRole) const
지정된 ` role `에 대한, 인덱스가 가리키는 항목의 데이터를 반환하거나, 해당 모델 인덱스가 ` invalid`인 경우 기본 생성된 ` QVariant `을 반환합니다.
Qt::ItemFlags QModelIndex::flags() const
인덱스가 가리키는 항목에 대한 플래그를 반환합니다.
[constexpr noexcept] quintptr QModelIndex::internalId() const
모델이 인덱스를 내부 데이터 구조와 연결하는 데 사용하는 ` quintptr ` 객체를 반환합니다.
QAbstractItemModel::createIndex()도 참조하십시오 .
[noexcept] void *QModelIndex::internalPointer() const
모델이 인덱스를 내부 데이터 구조와 연결하는 데 사용하는 ` void ` * 포인터를 반환합니다.
QAbstractItemModel::createIndex()도 참조하십시오 .
[constexpr noexcept] bool QModelIndex::isValid() const
이 모델 인덱스가 유효한 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
유효한 인덱스는 특정 모델에 속하며, 행 번호와 열 번호가 0 이상이어야 합니다.
model(), row(), column()도 참조하십시오 .
[constexpr noexcept] 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()`를 반환합니다.
[constexpr noexcept] 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 가 반환됩니다.
sibling() 및 siblingAtRow()도 참조하십시오 .
QModelIndex QModelIndex::siblingAtRow(int row) const
현재 열에 대해 row 위치에 있는 형제 노드를 반환합니다. 이 위치에 형제 노드가 없는 경우, 유효하지 않은 QModelIndex 값이 반환됩니다.
sibling() 및 siblingAtColumn()도 참조하십시오 .
관련 비멤버
QModelIndexList
QList 의 동의어 <QModelIndex>.
[constexpr noexcept] bool operator!=(const QModelIndex &lhs, const QModelIndex &rhs)
lhs 모델 인덱스가 rhs 모델 인덱스와 동일한 위치를 가리키지 않는 경우 true 을 반환하고, 그렇지 않은 경우 false 을 반환합니다.
[constexpr noexcept] bool operator<(const QModelIndex &lhs, const QModelIndex &rhs)
lhs 모델 인덱스가 rhs 모델 인덱스보다 작으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.
'보다 작음' 연산은 개발자에게 직접적인 유용성이 없습니다. 부모가 다른 인덱스 간의 비교 방식은 정의되어 있지 않기 때문입니다. 이 연산자는 해당 클래스를 QMap 와 함께 사용할 수 있도록 하기 위해서만 존재합니다.
[constexpr noexcept] bool operator==(const QModelIndex &lhs, const QModelIndex &rhs)
lhs 모델 인덱스가 rhs 모델 인덱스와 동일한 위치를 가리키는 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.
다른 모델 인덱스와 비교할 때는 내부 데이터 포인터, 행, 열 및 모델 값이 사용됩니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.