QModelIndex Class

QModelIndex クラスは、データモデル内のデータを検索するために使用されます。詳細...

ヘッダー #include <QModelIndex>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
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
(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 QAbstractItemModelchild()関数は、モデル内のインデックスの下に保持されている項目を調べるために使用します。sibling() 関数を使用すると、インデックスと同じレベルでモデル内の項目をたどることができます。

注意: モデル・インデックスはすぐに使用し、その後破棄してください。モデルの構造を変更したり項目を削除したりするようなモデル関数を呼び出した後も、インデックスが有効であり続けることを当てにしてはいけません。モデルのインデックスを長期間保持する必要がある場合は、QPersistentModelIndex を使用してください。

モデル/ビュー・プログラミング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 を返す。

有効なインデックスはモデルに属し、行番号と列番号が負でない。

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() を返します。

sibling() およびmodel()も参照してください

[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 を返す。

内部データポインタ、行、列、モデル値は、別のモデルインデックスと比較する際に使用されます。

© 2025 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.