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
を返します。
有効なインデックスはモデルに属し、行番号と列番号が負でない。
[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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。