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