QModelIndex Class

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

Header: #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 を返します。

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

このドキュメントに含まれるコントリビューションの著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。