QItemSelection Class
Die Klasse „QItemSelection“ verwaltet Informationen zu ausgewählten Elementen in einem Modell. Mehr...
| Header: | #include <QItemSelection> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Erbt von: | QList |
Öffentliche Funktionen
| QItemSelection() | |
| QItemSelection(const QModelIndex &topLeft, const QModelIndex &bottomRight) | |
| bool | contains(const QModelIndex &index) const |
| QModelIndexList | indexes() const |
| void | merge(const QItemSelection &other, QItemSelectionModel::SelectionFlags command) |
| void | select(const QModelIndex &topLeft, const QModelIndex &bottomRight) |
Statische öffentliche Mitglieder
| void | split(const QItemSelectionRange &range, const QItemSelectionRange &other, QItemSelection *result) |
Ausführliche Beschreibung
Ein `QItemSelection` beschreibt die Elemente in einem Modell, die vom Benutzer ausgewählt wurden. Ein `QItemSelection` ist im Grunde eine Liste von Auswahlbereichen, siehe QItemSelectionRange. Es bietet Funktionen zum Erstellen und Bearbeiten von Auswahlen sowie zum Auswählen eines Bereichs von Elementen aus einem Modell.
Die Klasse QItemSelection gehört zu den Model/View-Klassen und ist Teil des Model/View-Frameworks von Qt.
Eine Elementauswahl kann so erstellt und initialisiert werden, dass sie einen Bereich von Elementen aus einem vorhandenen Modell enthält. Das folgende Beispiel erstellt eine Auswahl, die einen Bereich von Elementen aus dem angegebenen Modell model enthält, beginnend bei topLeft und endend bei bottomRight.
QItemSelection *selection = new QItemSelection(topLeft, bottomRight);Eine leere Elementauswahl kann erstellt und später nach Bedarf gefüllt werden. Wenn das Modell also zum Zeitpunkt der Erstellung der Elementauswahl noch nicht verfügbar ist, können wir den obigen Code wie folgt umschreiben:
QItemSelection *selection = new QItemSelection();
//...
selection->select(topLeft, bottomRight);QItemSelection spart Speicherplatz und vermeidet unnötigen Aufwand, indem es mit Auswahlbereichen arbeitet, anstatt den Modellelementindex für jedes Element in der Auswahl zu speichern. Im Allgemeinen enthält eine Instanz dieser Klasse eine Liste sich nicht überschneidender Auswahlbereiche.
Verwenden Sie ` merge()` (Auswahl zusammenführen), um eine Elementauswahl mit einer anderen zusammenzuführen, ohne dass sich Bereiche überschneiden. Verwenden Sie ` split()` (Auswahl aufteilen), um einen Auswahlbereich basierend auf einem anderen Auswahlbereich in kleinere Bereiche aufzuteilen.
Siehe auch „Modell-/Ansichtsprogrammierung“ und „ QItemSelectionModel “.
Dokumentation der Member-Funktionen
[implicit] QItemSelection::QItemSelection()
Erstellt eine leere Auswahl.
QItemSelection::QItemSelection(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Erstellt eine Elementauswahl, die sich vom Modellelement oben links, das durch den Index „ topLeft “ angegeben wird, bis zum Element unten rechts erstreckt, das durch „ bottomRight “ angegeben wird.
bool QItemSelection::contains(const QModelIndex &index) const
Gibt „ true “ zurück, wenn die Auswahl das angegebene „ index “ enthält; andernfalls wird „ false “ zurückgegeben.
QModelIndexList QItemSelection::indexes() const
Gibt eine Liste der Modellindizes zurück, die den ausgewählten Elementen entsprechen.
void QItemSelection::merge(const QItemSelection &other, QItemSelectionModel::SelectionFlags command)
Führt die Auswahl unter other mit dieser unter QItemSelection unter Verwendung der angegebenen command zusammen. Diese Methode gewährleistet, dass sich keine Bereiche überschneiden.
Beachten Sie, dass nur „ QItemSelectionModel::Select “, „ QItemSelectionModel::Deselect “ und „ QItemSelectionModel::Toggle “ unterstützt werden.
Siehe auch split().
void QItemSelection::select(const QModelIndex &topLeft, const QModelIndex &bottomRight)
Fügt die Elemente des Bereichs, der sich vom Modellelement oben links (angegeben durch den Index „ topLeft “) bis zum Element unten rechts (angegeben durch „ bottomRight “) erstreckt, zur Liste hinzu.
Hinweis: „ topLeft “ und „ bottomRight “ müssen denselben übergeordneten Eintrag haben.
[static] void QItemSelection::split(const QItemSelectionRange &range, const QItemSelectionRange &other, QItemSelection *result)
Teilt die Auswahl range anhand des Auswahlbereichs other auf. Entfernt alle Elemente in other aus range und speichert das Ergebnis in result. Dies lässt sich mit der Semantik der Subtraktionsoperation einer Menge vergleichen.
Siehe auch merge().
© 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.