QModelIndex 类

The QModelIndex 类用于在数据模型中定位数据。 更多信息...

头文件 #include <QModelIndex>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共函数

QModelIndex()
intcolumn() const
const void *constInternalPointer() const
QVariantdata(int role = Qt::DisplayRole) const
Qt::ItemFlagsflags() const
quintptrinternalId() const
void *internalPointer() const
boolisValid() const
const QAbstractItemModel *model() const
(since 6.0) voidmultiData(QModelRoleDataSpan roleDataSpan) const
QModelIndexparent() const
introw() const
QModelIndexsibling(int row, int column) const
QModelIndexsiblingAtColumn(int column) const
QModelIndexsiblingAtRow(int row) const
booloperator!=(const QModelIndex &other) const
booloperator<(const QModelIndex &other) const
booloperator==(const QModelIndex &other) const

详细说明

此类用作从 QAbstractItemModel 派生的项模型中的索引。索引由项视图、委托和选择模型使用,以定位模型中的项。

通过使用 QAbstractItemModel::createIndex() 函数创建新的 QModelIndex 对象。可以使用 QModelIndex 构造函数创建一个 无效 的模型索引。无效索引通常用作引用模型中顶级项时的父索引。

模型索引指的是模型中的项,包含指定这些项在模型中位置所需的所有信息。每个索引位于特定的行和列中,可能有一个父索引;使用 row()()、column()() 和 parent()() 来获取此信息。模型中的每个顶级项都由一个没有父索引的模型索引表示 - 在这种情况下,parent()() 将返回一个无效的模型索引,相当于使用QModelIndex()构造函数的零参数形式构建的索引。

要获取一个指向模型中现有项的模型索引,请使用所需的行和列值以及父模型索引调用 QAbstractItemModel::index()。在引用模型中的顶级项时,提供QModelIndex()作为父索引。

model() 函数返回索引引用的模型,作为 QAbstractItemModel child() 函数用于检查模型中索引下的项。使用 sibling() 函数可以在与索引同一级别的模型中遍历项。

注意:模型索引应立即使用并丢弃。您不应依赖于在调用更改模型结构或删除项的模型函数之后索引仍然有效。如果需要长时间保留模型索引,请使用 QPersistentModelIndex

另请参阅:模型/视图编程QPersistentModelIndexQAbstractItemModel

成员函数文档

[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

返回由索引引用的项的给定 角色 的数据。

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

有效的索引属于一个模型,并且具有非负的行和列编号。

另请参阅模型(),(),和 ()。

[constexpr noexcept] const QAbstractItemModel *QModelIndex::model() 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

返回位于 rowcolumn 的兄弟。如果没有在该位置找到兄弟,则返回一个无效的 QModelIndex

另请参阅父级(),siblingAtColumn() 和 siblingAtRow()。

QModelIndex QModelIndex::siblingAtColumn(int column) const

返回对于当前行的 column 的兄弟。如果没有在该位置找到兄弟,则返回一个无效的 QModelIndex

另请参阅sibling() 和 siblingAtRow()。

QModelIndex QModelIndex::siblingAtRow(int row) const

返回对于当前列的 row 的兄弟。如果没有在该位置找到兄弟,则返回一个无效的 QModelIndex

另请参阅sibling() 和 siblingAtColumn()。

[constexpr noexcept] bool QModelIndex::operator!=(const QModelIndex &other) const

如果此模型索引不引用与另一个模型索引相同的地址,则返回true;否则返回false

[constexpr noexcept] bool QModelIndex::operator<(const QModelIndex &other) const

如果此模型索引小于另一个模型索引,则返回true;否则返回false

小于计算对开发人员来说没有直接用途 - 不同父类的索引比较方式没有定义。此运算符存在是为了使此类可以与QMap一起使用。

[constexpr noexcept] bool QModelIndex::operator==(const QModelIndex &other) const

如果此模型索引引用与另一个模型索引相同的地址,则返回true;否则返回false

当与另一个模型索引比较时,使用内部数据指针、行、列和模型值进行比较。

相关非成员

QModelIndexList

QList<QModelIndex>的同义词。

© 2024 The Qt Company Ltd. 包含在此处的文档贡献版权属于其各自的拥有者。 本地提供的文档受自由软件基金会发布的GNU自由文档许可证版1.3条款的许可。 Qt和相应的标志是芬兰的The Qt Company Ltd.及/或其他国家的商标。 所有其他商标均为其各自拥有者的财产。