QModelIndex Class

Die Klasse QModelIndex wird zum Auffinden von Daten in einem Datenmodell verwendet. Mehr...

Kopfzeile: #include <QModelIndex>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Diese Klasse ist stark vergleichbar.

Ö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
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)

Detaillierte Beschreibung

Diese Klasse wird als Index in Elementmodellen verwendet, die von QAbstractItemModel abgeleitet sind. Der Index wird von Elementansichten, Delegaten und Auswahlmodellen verwendet, um ein Element im Modell zu finden.

Neue QModelIndex-Objekte werden vom Modell mit der Funktion QAbstractItemModel::createIndex() erstellt. Ein ungültiger Modellindex kann mit dem QModelIndex-Konstruktor erstellt werden. Ungültige Indizes werden oft als übergeordnete Indizes verwendet, wenn sie sich auf Elemente der obersten Ebene eines Modells beziehen.

Modellindizes beziehen sich auf Elemente in Modellen und enthalten alle Informationen, die erforderlich sind, um ihre Position 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 zu erhalten. Jedes Top-Level-Element in einem Modell wird durch einen Modellindex repräsentiert, 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 QModelIndex()-Konstruktors erstellt wurde.

Um einen Modellindex zu erhalten, der sich auf ein vorhandenes Element in einem Modell bezieht, rufen Sie QAbstractItemModel::index() mit den erforderlichen Zeilen- und Spaltenwerten und dem Modellindex des übergeordneten Elements auf. Wenn Sie sich auf Elemente der obersten Ebene eines Modells beziehen, 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() wird verwendet, um Elemente zu untersuchen, die unter dem Index im Modell enthalten sind. Mit der Funktion sibling() können Sie die Elemente im Modell auf der gleichen Ebene wie der Index durchlaufen.

Hinweis: Modellindizes sollten sofort verwendet und dann 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, gültig bleiben. Wenn Sie einen Modellindex über einen längeren Zeitraum beibehalten müssen, verwenden Sie QPersistentModelIndex.

Siehe auch Modell/Ansichts-Programmierung, QPersistentModelIndex und QAbstractItemModel.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept] QModelIndex::QModelIndex()

Erzeugt 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 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 die angegebene role für das Element zurück, auf das der Index verweist, oder eine standardmäßig konstruierte QVariant, wenn dieser Modellindex invalid ist.

Qt::ItemFlags QModelIndex::flags() const

Gibt die Flaggen für das Element zurück, auf das der Index verweist.

[constexpr noexcept] quintptr QModelIndex::internalId() const

Gibt eine quintptr zurück, die 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 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 hat nicht-negative Zeilen- und Spaltennummern.

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 Ihre Anwendung möglicherweise zum Absturz bringen können.

[since 6.0] void QModelIndex::multiData(QModelRoleDataSpan roleDataSpan) const

Füllt die 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 Index des Modells zurück, oder QModelIndex(), wenn es keinen übergeordneten Index hat.

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 Geschwisterkind an row und column zurück. Gibt es kein Geschwisterkind an dieser Position, wird ein ungültiges QModelIndex zurückgegeben.

Siehe auch parent(), siblingAtColumn(), und siblingAtRow().

QModelIndex QModelIndex::siblingAtColumn(int column) const

Gibt das Geschwisterkind unter column für die aktuelle Zeile zurück. Wenn es an dieser Position keine Geschwister gibt, wird ein ungültiger QModelIndex zurückgegeben.

Siehe auch sibling() und siblingAtRow().

QModelIndex QModelIndex::siblingAtRow(int row) const

Gibt für die aktuelle Spalte das Geschwisterkind unter row zurück. Wenn es an dieser Position keine Geschwister gibt, wird ein ungültiger 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 lhs model index sich nicht auf denselben Ort wie rhs model index bezieht; andernfalls gibt false zurück.

[constexpr noexcept] bool operator<(const QModelIndex &lhs, const QModelIndex &rhs)

Gibt true zurück, wenn der Modellindex lhs kleiner ist als der Modellindex rhs; andernfalls wird false zurückgegeben.

Die Berechnung "kleiner als" ist für Entwickler nicht direkt nützlich - die Art und Weise, wie Indizes mit unterschiedlichen Eltern verglichen werden, ist nicht definiert. Dieser Operator existiert nur, 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 Ort verweist wie der Modellindex rhs; andernfalls wird false zurückgegeben.

Der interne Datenzeiger, die Zeilen-, Spalten- und Modellwerte werden beim Vergleich mit einem anderen Modellindex verwendet.

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