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
を返す。
有効なインデックスはモデルに属し、行番号と列番号が負でない。
[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.