QModelIndex Class
Die Klasse „QModelIndex“ dient dazu, Daten in einem Datenmodell zu lokalisieren. Mehr dazu...
| Header: | #include <QModelIndex> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Vergleiche von QModelIndex
| Kategorie | Vergleichbare Typen |
|---|---|
| stark | QModelIndex |
Öffentliche Funktionen
| 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 |
Verwandte Nicht-Mitglieder
| 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) |
Ausführliche Beschreibung
Diese Klasse dient als Index für Elementmodelle, die von „ QAbstractItemModel “ abgeleitet sind. Der Index wird von Elementansichten, Delegaten und Auswahlmodellen verwendet, um ein Element im Modell zu lokalisieren.
Neue QModelIndex-Objekte werden vom Modell mithilfe der Funktion ` QAbstractItemModel::createIndex()` erstellt. Ein ungültiger Modellindex kann mit dem QModelIndex-Konstruktor erstellt werden. Ungültige Indizes werden häufig als übergeordnete Indizes verwendet, wenn auf Elemente der obersten Ebene in einem Modell verwiesen wird.
Modellindizes verweisen auf Elemente in Modellen und enthalten alle Informationen, die erforderlich sind, um deren Positionen in diesen Modellen anzugeben. Jeder Index befindet sich in einer bestimmten Zeile und Spalte und kann einen übergeordneten Index haben; verwenden Sie ` row()`, ` column()` und ` parent()`, um diese Informationen abzurufen. Jedes Element der obersten Ebene in einem Modell wird durch einen Modellindex dargestellt, der keinen übergeordneten Index hat – in diesem Fall gibt ` parent()` einen ungültigen Modellindex zurück, der einem Index entspricht, der mit der Null-Argument-Form des Konstruktors `QModelIndex()` erstellt wurde.
Um einen Modellindex zu erhalten, der auf ein vorhandenes Element in einem Modell verweist, rufen Sie ` QAbstractItemModel::index()` mit den erforderlichen Zeilen- und Spaltenwerten sowie dem Modellindex des übergeordneten Elements auf. Wenn Sie auf Elemente der obersten Ebene in einem Modell verweisen, geben Sie `QModelIndex()` als übergeordneten Index an.
Die Funktion ` model()` gibt das Modell, auf das der Index verweist, als ` QAbstractItemModel` zurück. Die Funktion `child()` dient dazu, Elemente zu untersuchen, die unter dem Index im Modell gespeichert sind. Mit der Funktion ` sibling()` können Sie Elemente im Modell auf derselben Ebene wie der Index durchlaufen.
Hinweis: Modellindizes sollten sofort verwendet und anschließend verworfen werden. Sie sollten sich nicht darauf verlassen, dass Indizes nach dem Aufruf von Modellfunktionen, die die Struktur des Modells ändern oder Elemente löschen, weiterhin gültig bleiben. Wenn Sie einen Modellindex über einen längeren Zeitraum beibehalten müssen, verwenden Sie einen „ QPersistentModelIndex “.
Siehe auch „Modell-/Ansichtsprogrammierung“, „ QPersistentModelIndex “ und „ QAbstractItemModel “.
Dokumentation zu Mitgliedsfunktionen
[constexpr noexcept] QModelIndex::QModelIndex()
Erstellt einen neuen leeren Modellindex. Diese Art von Modellindex wird verwendet, um anzuzeigen, dass die Position im Modell ungültig ist.
Siehe auch isValid() und QAbstractItemModel.
[constexpr noexcept] int QModelIndex::column() const
Gibt die Spalte zurück, auf die sich dieser Modellindex bezieht.
[noexcept] const void *QModelIndex::constInternalPointer() const
Gibt einen Zeiger vom Typ „ const void “ * zurück, der vom Modell verwendet wird, um den Index mit der internen Datenstruktur zu verknüpfen.
Siehe auch QAbstractItemModel::createIndex().
QVariant QModelIndex::data(int role = Qt::DisplayRole) const
Gibt die Daten für das angegebene ` role ` für das Element zurück, auf das der Index verweist, oder ein standardmäßig erstelltes ` QVariant `, falls der Index des Modells ` invalid` ist.
Qt::ItemFlags QModelIndex::flags() const
Gibt die Flags für das Element zurück, auf das der Index verweist.
[constexpr noexcept] quintptr QModelIndex::internalId() const
Gibt ein ` quintptr ` zurück, das vom Modell verwendet wird, um den Index mit der internen Datenstruktur zu verknüpfen.
Siehe auch ` QAbstractItemModel::createIndex()`.
[noexcept] void *QModelIndex::internalPointer() const
Gibt einen Zeiger vom Typ „ void “ * zurück, der vom Modell verwendet wird, um den Index mit der internen Datenstruktur zu verknüpfen.
Siehe auch QAbstractItemModel::createIndex().
[constexpr noexcept] bool QModelIndex::isValid() const
Gibt „ true “ zurück, wenn dieser Modellindex gültig ist; andernfalls wird „ false “ zurückgegeben.
Ein gültiger Index gehört zu einem Modell und weist nicht-negative Zeilen- und Spaltennummern auf.
Siehe auch „ model()“, „ row()“ und „ column()“.
[constexpr noexcept] const QAbstractItemModel *QModelIndex::model() const
Gibt einen Zeiger auf das Modell zurück, das das Element enthält, auf das sich dieser Index bezieht.
Es wird ein const-Zeiger auf das Modell zurückgegeben, da Aufrufe von nicht-const-Funktionen des Modells den Modellindex ungültig machen und möglicherweise zum Absturz Ihrer Anwendung führen könnten.
[since 6.0] void QModelIndex::multiData(QModelRoleDataSpan roleDataSpan) const
Füllt das angegebene „ roleDataSpan “ für das Element, auf das der Index verweist.
Diese Funktion wurde in Qt 6.0 eingeführt.
QModelIndex QModelIndex::parent() const
Gibt den übergeordneten Eintrag des Modellindexes zurück oder „ QModelIndex()“, falls kein übergeordneter Eintrag vorhanden ist.
Siehe auch „ sibling()“ und „ model()“.
[constexpr noexcept] int QModelIndex::row() const
Gibt die Zeile zurück, auf die sich dieser Modellindex bezieht.
QModelIndex QModelIndex::sibling(int row, int column) const
Gibt das Geschwisterelement unter row und column zurück. Wenn an dieser Position kein Geschwisterelement vorhanden ist, wird ein ungültiges QModelIndex zurückgegeben.
Siehe auch parent(), siblingAtColumn() und siblingAtRow().
QModelIndex QModelIndex::siblingAtColumn(int column) const
Gibt das Geschwisterelement an der Position „ column “ für die aktuelle Zeile zurück. Befindet sich an dieser Position kein Geschwisterelement, wird ein ungültiger Wert „ QModelIndex “ zurückgegeben.
Siehe auch sibling() und siblingAtRow().
QModelIndex QModelIndex::siblingAtRow(int row) const
Gibt das Geschwisterelement an der Position „ row “ für die aktuelle Spalte zurück. Befindet sich an dieser Position kein Geschwisterelement, wird ein ungültiger Wert „ QModelIndex “ zurückgegeben.
Siehe auch sibling() und siblingAtColumn().
Verwandte Nicht-Mitglieder
QModelIndexList
Synonym für „ QList “ <QModelIndex>.
[constexpr noexcept] bool operator!=(const QModelIndex &lhs, const QModelIndex &rhs)
Gibt „ true “ zurück, wenn der Modellindex „ lhs “ nicht auf denselben Speicherort verweist wie der Modellindex „ rhs “; andernfalls wird „ false “ zurückgegeben.
[constexpr noexcept] bool operator<(const QModelIndex &lhs, const QModelIndex &rhs)
Gibt „ true “ zurück, wenn der Modellindex von „ lhs “ kleiner ist als der Modellindex von „ rhs “; andernfalls wird „ false “ zurückgegeben.
Die „kleiner als“-Berechnung ist für Entwickler nicht unmittelbar nützlich – es ist nicht definiert, wie Indizes mit unterschiedlichen übergeordneten Elementen verglichen werden. Dieser Operator existiert lediglich, damit die Klasse mit „ QMap “ verwendet werden kann.
[constexpr noexcept] bool operator==(const QModelIndex &lhs, const QModelIndex &rhs)
Gibt „ true “ zurück, wenn der Modellindex „ lhs “ auf denselben Speicherort verweist wie der Modellindex „ rhs “; andernfalls wird „ false “ zurückgegeben.
Beim Vergleich mit einem anderen Modellindex werden der interne Datenzeiger sowie die Werte für Zeile, Spalte und Modell herangezogen.
© 2026 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.