QTreeWidget Class

Die Klasse QTreeWidget bietet eine Baumansicht, die ein vordefiniertes Baummodell verwendet. Mehr...

Kopfzeile: #include <QTreeWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbungen: QTreeView

Eigenschaften

Öffentliche Funktionen

QTreeWidget(QWidget *parent = nullptr)
virtual ~QTreeWidget()
void addTopLevelItem(QTreeWidgetItem *item)
void addTopLevelItems(const QList<QTreeWidgetItem *> &items)
void closePersistentEditor(QTreeWidgetItem *item, int column = 0)
int columnCount() const
int currentColumn() const
QTreeWidgetItem *currentItem() const
void editItem(QTreeWidgetItem *item, int column = 0)
QList<QTreeWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const
QTreeWidgetItem *headerItem() const
QModelIndex indexFromItem(const QTreeWidgetItem *item, int column = 0) const
int indexOfTopLevelItem(QTreeWidgetItem *item) const
void insertTopLevelItem(int index, QTreeWidgetItem *item)
void insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
QTreeWidgetItem *invisibleRootItem() const
bool isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const
QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const
QTreeWidgetItem *itemAt(const QPoint &p) const
QTreeWidgetItem *itemAt(int x, int y) const
QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const
QTreeWidgetItem *itemFromIndex(const QModelIndex &index) const
QWidget *itemWidget(QTreeWidgetItem *item, int column) const
void openPersistentEditor(QTreeWidgetItem *item, int column = 0)
void removeItemWidget(QTreeWidgetItem *item, int column)
QList<QTreeWidgetItem *> selectedItems() const
void setColumnCount(int columns)
void setCurrentItem(QTreeWidgetItem *item)
void setCurrentItem(QTreeWidgetItem *item, int column)
void setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)
void setHeaderItem(QTreeWidgetItem *item)
void setHeaderLabel(const QString &label)
void setHeaderLabels(const QStringList &labels)
void setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)
int sortColumn() const
void sortItems(int column, Qt::SortOrder order)
QTreeWidgetItem *takeTopLevelItem(int index)
QTreeWidgetItem *topLevelItem(int index) const
int topLevelItemCount() const
QRect visualItemRect(const QTreeWidgetItem *item) const

Reimplementierte öffentliche Funktionen

virtual void setSelectionModel(QItemSelectionModel *selectionModel) override

Öffentliche Slots

void clear()
void collapseItem(const QTreeWidgetItem *item)
void expandItem(const QTreeWidgetItem *item)
void scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Signale

void currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
void itemActivated(QTreeWidgetItem *item, int column)
void itemChanged(QTreeWidgetItem *item, int column)
void itemClicked(QTreeWidgetItem *item, int column)
void itemCollapsed(QTreeWidgetItem *item)
void itemDoubleClicked(QTreeWidgetItem *item, int column)
void itemEntered(QTreeWidgetItem *item, int column)
void itemExpanded(QTreeWidgetItem *item)
void itemPressed(QTreeWidgetItem *item, int column)
void itemSelectionChanged()

Geschützte Funktionen

virtual bool dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)
virtual QMimeData *mimeData(const QList<QTreeWidgetItem *> &items) const
virtual QStringList mimeTypes() const
virtual Qt::DropActions supportedDropActions() const

Reimplementierte geschützte Funktionen

virtual void dropEvent(QDropEvent *event) override
virtual bool event(QEvent *e) override

Detaillierte Beschreibung

Die Klasse QTreeWidget ist eine Komfortklasse, die ein Standard-Baum-Widget mit einer klassischen, auf Elementen basierenden Schnittstelle bereitstellt, ähnlich der von der Klasse QListView in Qt 3 verwendeten. Diese Klasse basiert auf der Model/View-Architektur von Qt und verwendet ein Standardmodell zur Aufnahme von Elementen, von denen jedes ein QTreeWidgetItem ist.

Entwickler, die die Flexibilität des Model/View-Frameworks nicht benötigen, können mit dieser Klasse sehr leicht einfache hierarchische Listen erstellen. Ein flexiblerer Ansatz besteht darin, ein QTreeView mit einem Standard-Elementmodell zu kombinieren. Dadurch kann die Speicherung von Daten von ihrer Darstellung getrennt werden.

In seiner einfachsten Form kann ein Baum-Widget folgendermaßen aufgebaut werden:

QTreeWidget *treeWidget = new QTreeWidget();
treeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> items;
for (int i = 0; i < 10; ++i)
    items.append(new QTreeWidgetItem(static_cast<QTreeWidget *>(nullptr), QStringList(QString("item: %1").arg(i))));
treeWidget->insertTopLevelItems(0, items);

Bevor Elemente zum Tree-Widget hinzugefügt werden können, muss die Anzahl der Spalten mit setColumnCount() festgelegt werden. Dies ermöglicht es jedem Element, eine oder mehrere Beschriftungen oder andere Dekorationen zu haben. Die Anzahl der verwendeten Spalten kann mit der Funktion columnCount() ermittelt werden.

Der Baum kann eine Kopfzeile haben, die einen Abschnitt für jede Spalte des Widgets enthält. Es ist am einfachsten, die Beschriftungen für jeden Abschnitt zu erstellen, indem man eine Liste von Strings mit setHeaderLabels() angibt, aber eine benutzerdefinierte Kopfzeile kann mit QTreeWidgetItem erstellt und mit der Funktion setHeaderItem() in den Baum eingefügt werden.

Die Elemente im Baum können nach Spalten gemäß einer vordefinierten Sortierreihenfolge sortiert werden. Wenn die Sortierung aktiviert ist, kann der Benutzer die Elemente sortieren, indem er auf eine Spaltenüberschrift klickt. Die Sortierung kann durch den Aufruf von setSortingEnabled() aktiviert oder deaktiviert werden. Die Funktion isSortingEnabled() zeigt an, ob die Sortierung aktiviert ist.

Siehe auch QTreeWidgetItem, QTreeWidgetItemIterator, QTreeView und Model/View Programming.

Dokumentation der Eigenschaften

columnCount : int

Diese Eigenschaft gibt die Anzahl der im Baum-Widget angezeigten Spalten an

Standardmäßig hat diese Eigenschaft einen Wert von 1.

Zugriffsfunktionen:

int columnCount() const
void setColumnCount(int columns)

[read-only] topLevelItemCount : const int

Diese Eigenschaft enthält die Anzahl der Elemente der obersten Ebene

Standardmäßig hat diese Eigenschaft einen Wert von 0.

Zugriffsfunktionen:

int topLevelItemCount() const

Siehe auch columnCount() und currentItem().

Dokumentation der Mitgliedsfunktionen

[explicit] QTreeWidget::QTreeWidget(QWidget *parent = nullptr)

Konstruiert ein Baum-Widget mit dem angegebenen parent.

[virtual noexcept] QTreeWidget::~QTreeWidget()

Zerstört das Baum-Widget und alle seine Elemente.

void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)

Fügt das item als oberstes Element im Widget ein.

Siehe auch insertTopLevelItem().

void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem *> &items)

Fügt die Liste items als Top-Level-Element im Widget ein.

Siehe auch insertTopLevelItems().

[slot] void QTreeWidget::clear()

Löscht das Tree-Widget, indem es alle seine Elemente und Auswahlen entfernt.

Hinweis: Da jedes Element aus dem Tree-Widget entfernt wird, bevor es gelöscht wird, ist der Rückgabewert von QTreeWidgetItem::treeWidget() ungültig, wenn er aus dem Destruktor eines Elements aufgerufen wird.

Siehe auch takeTopLevelItem(), topLevelItemCount(), und columnCount().

void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column = 0)

Schließt den persistenten Editor für den item in der angegebenen column.

Diese Funktion hat keine Auswirkung, wenn kein persistenter Editor für diese Kombination von Element und Spalte geöffnet ist.

Siehe auch openPersistentEditor() und isPersistentEditorOpen().

[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)

Schließt item. Dies bewirkt, dass der Baum, der die Kinder des Elements enthält, zusammengeklappt wird.

Siehe auch expandItem(), currentItem(), itemAt(), und topLevelItem().

int QTreeWidget::currentColumn() const

Gibt die aktuelle Spalte im Tree-Widget zurück.

Siehe auch setCurrentItem() und columnCount().

QTreeWidgetItem *QTreeWidget::currentItem() const

Gibt das aktuelle Element im Tree-Widget zurück.

Siehe auch setCurrentItem() und currentItemChanged().

[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)

Dieses Signal wird ausgegeben, wenn sich das aktuelle Element ändert. Das aktuelle Element wird durch current angegeben, und dies ersetzt das previous aktuelle Element.

Siehe auch setCurrentItem().

[override virtual protected] void QTreeWidget::dropEvent(QDropEvent *event)

Reimplements: QAbstractItemView::dropEvent(QDropEvent *event).

[virtual protected] bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)

Verarbeitet die data, die von einer Drag&Drop-Operation geliefert wurde, die mit dem angegebenen action in dem index in dem angegebenen parent Element endete.

Die Standardimplementierung gibt true zurück, wenn die Ablage durch Dekodierung der Mime-Daten und Einfügen in das Modell erfolgreich durchgeführt wurde; andernfalls wird false zurückgegeben.

Siehe auch supportedDropActions().

void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)

Beginnt mit der Bearbeitung von item in der angegebenen column, sofern sie bearbeitbar ist.

[override virtual protected] bool QTreeWidget::event(QEvent *e)

Reimplements: QAbstractItemView::event(QEvent *Event).

[slot] void QTreeWidget::expandItem(const QTreeWidgetItem *item)

Erweitert item. Dadurch wird der Baum, der die Kinder des Elements enthält, erweitert.

Siehe auch collapseItem(), currentItem(), itemAt(), topLevelItem(), und itemExpanded().

QList<QTreeWidgetItem *> QTreeWidget::findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const

Gibt eine Liste von Elementen zurück, die mit dem angegebenen text übereinstimmen, unter Verwendung des angegebenen flags, im angegebenen column.

QTreeWidgetItem *QTreeWidget::headerItem() const

Gibt das Element zurück, das für die Kopfzeile des Tree-Widgets verwendet wird.

Siehe auch setHeaderItem().

QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column = 0) const

Gibt die QModelIndex zurück, die mit dem angegebenen item im angegebenen column verbunden ist.

Hinweis: In Qt-Versionen vor 5.7 nahm diese Funktion ein nichtconst item .

Siehe auch itemFromIndex() und topLevelItem().

int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const

Gibt den Index der angegebenen obersten Ebene item zurück, oder -1, wenn das Element nicht gefunden werden kann.

Siehe auch sortItems() und topLevelItemCount().

void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)

Fügt das Element item unter index auf der obersten Ebene in der Ansicht ein.

Wenn das Element bereits an anderer Stelle eingefügt wurde, wird es nicht eingefügt.

Siehe auch addTopLevelItem() und columnCount().

void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)

Fügt die Liste items unter index auf der obersten Ebene in die Ansicht ein.

Elemente, die bereits an anderer Stelle eingefügt wurden, werden nicht eingefügt.

Siehe auch addTopLevelItems().

QTreeWidgetItem *QTreeWidget::invisibleRootItem() const

Gibt das unsichtbare Wurzelelement des Tree-Widgets zurück.

Das unsichtbare Wurzelelement ermöglicht den Zugriff auf die Top-Level-Elemente des Tree-Widgets über die API QTreeWidgetItem, so dass es möglich ist, Funktionen zu schreiben, die Top-Level-Elemente und ihre Kinder auf einheitliche Weise behandeln können, zum Beispiel rekursive Funktionen.

bool QTreeWidget::isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const

Gibt zurück, ob für das Element item in der Spalte column ein persistenter Editor geöffnet ist.

Siehe auch openPersistentEditor() und closePersistentEditor().

QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const

Gibt das Element oberhalb des angegebenen item zurück.

[signal] void QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)

Dieses Signal wird ausgegeben, wenn der Benutzer ein Element durch Einfach- oder Doppelklick (je nach Plattform, d.h. auf den QStyle::SH_ItemView_ActivateItemOnSingleClick style hint) oder durch Drücken einer speziellen Taste (z.B. Enter) aktiviert.

Das angegebene item ist das angeklickte Element, oder nullptr, wenn kein Element angeklickt wurde. column ist die Spalte des Elements, das angeklickt wurde, oder -1, wenn kein Element angeklickt wurde.

QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const

Gibt einen Zeiger auf das Element an den Koordinaten p zurück. Die Koordinaten sind relativ zu viewport() des Tree Widgets.

Siehe auch visualItemRect().

QTreeWidgetItem *QTreeWidget::itemAt(int x, int y) const

Dies ist eine überladene Funktion.

Gibt einen Zeiger auf das Element an den Koordinaten (x, y) zurück. Die Koordinaten sind relativ zu viewport() des Baum-Widgets.

QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item) const

Gibt das Element zurück, das sich visuell unterhalb des angegebenen item befindet.

[signal] void QTreeWidget::itemChanged(QTreeWidgetItem *item, int column)

Dieses Signal wird ausgegeben, wenn sich der Inhalt von column im angegebenen item ändert.

[signal] void QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)

Dieses Signal wird ausgesendet, wenn der Benutzer innerhalb des Widgets klickt.

Der angegebene item ist das Element, das angeklickt wurde. column ist die Spalte des Elements, auf das geklickt wurde. Wenn kein Element angeklickt wurde, wird kein Signal ausgegeben.

[signal] void QTreeWidget::itemCollapsed(QTreeWidgetItem *item)

Dieses Signal wird ausgegeben, wenn das angegebene item zusammengeklappt wird, so dass keines seiner Kinder mehr angezeigt wird.

Hinweis: Dieses Signal wird nicht ausgegeben, wenn ein Element seinen Zustand ändert, wenn collapseAll() aufgerufen wird.

Siehe auch QTreeWidgetItem::isExpanded(), itemExpanded(), und collapseItem().

[signal] void QTreeWidget::itemDoubleClicked(QTreeWidgetItem *item, int column)

Dieses Signal wird ausgegeben, wenn der Benutzer innerhalb des Widgets einen Doppelklick ausführt.

Der angegebene item ist das Element, das angeklickt wurde, oder nullptr, wenn kein Element angeklickt wurde. column ist die Spalte des Elements, auf das geklickt wurde. Wenn kein Element doppelt angeklickt wurde, wird kein Signal ausgegeben.

[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)

Dieses Signal wird ausgegeben, wenn der Mauszeiger eine item über der angegebenen column betritt. QTreeWidget Mausverfolgung muss aktiviert sein, damit diese Funktion funktioniert.

[signal] void QTreeWidget::itemExpanded(QTreeWidgetItem *item)

Dieses Signal wird ausgegeben, wenn das angegebene item so erweitert wird, dass alle seine Kinder angezeigt werden.

Siehe auch QTreeWidgetItem::isExpanded(), itemCollapsed(), und expandItem().

QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const

Gibt einen Zeiger auf den QTreeWidgetItem zurück, der mit dem angegebenen index verbunden ist.

Siehe auch indexFromItem().

[signal] void QTreeWidget::itemPressed(QTreeWidgetItem *item, int column)

Dieses Signal wird ausgegeben, wenn der Benutzer eine Maustaste innerhalb des Widgets drückt.

Der angegebene item ist das Element, das angeklickt wurde, oder nullptr, wenn kein Element angeklickt wurde. column ist die Spalte des Elements, das angeklickt wurde, oder -1, wenn kein Element angeklickt wurde.

[signal] void QTreeWidget::itemSelectionChanged()

Dieses Signal wird ausgegeben, wenn sich die Auswahl im Tree Widget ändert. Die aktuelle Auswahl kann mit selectedItems() ermittelt werden.

QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const

Gibt das Widget zurück, das in der durch item und die angegebene column angegebenen Zelle angezeigt wird.

Siehe auch setItemWidget() und removeItemWidget().

[virtual protected] QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> &items) const

Gibt ein Objekt zurück, das eine serialisierte Beschreibung des angegebenen items enthält. Das zur Beschreibung der Elemente verwendete Format wird von der Funktion mimeTypes() bezogen.

Wenn die Liste der Elemente leer ist, wird nullptr anstelle einer serialisierten leeren Liste zurückgegeben.

[virtual protected] QStringList QTreeWidget::mimeTypes() const

Gibt eine Liste von MIME-Typen zurück, die zur Beschreibung einer Liste von Treewidget-Elementen verwendet werden können.

Siehe auch mimeData().

void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)

Öffnet einen persistenten Editor für die item in der angegebenen column.

Siehe auch closePersistentEditor() und isPersistentEditorOpen().

void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)

Entfernt das im angegebenen item eingestellte Widget im angegebenen column.

Siehe auch itemWidget() und setItemWidget().

[slot] void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Stellt sicher, dass item sichtbar ist und scrollt die Ansicht, wenn nötig, mit Hilfe des angegebenen hint.

Siehe auch currentItem(), itemAt(), und topLevelItem().

QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const

Gibt eine Liste aller ausgewählten, nicht ausgeblendeten Elemente zurück.

Siehe auch itemSelectionChanged().

void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)

Legt das aktuelle item im Baum-Widget fest.

Wenn der Auswahlmodus nicht NoSelection ist, wird das Element auch ausgewählt.

Siehe auch currentItem() und currentItemChanged().

void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column)

Setzt die aktuelle item im Tree Widget und die aktuelle Spalte auf column.

Siehe auch currentItem().

void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)

Setzt die aktuelle item im Tree-Widget und die aktuelle Spalte auf column, unter Verwendung der angegebenen command.

Siehe auch currentItem().

void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)

Setzt die Kopfzeile item für das Tree-Widget. Die Bezeichnung für jede Spalte in der Kopfzeile wird von der entsprechenden Bezeichnung im Eintrag geliefert.

Das Tree-Widget übernimmt das Eigentum an dem Eintrag.

Siehe auch headerItem() und setHeaderLabels().

void QTreeWidget::setHeaderLabel(const QString &label)

Dasselbe wie setHeaderLabels(QStringList(label)).

void QTreeWidget::setHeaderLabels(const QStringList &labels)

Fügt für jeden Eintrag in der Liste labels eine Spalte in der Kopfzeile hinzu und setzt die Beschriftung für jede Spalte.

Beachten Sie, dass setHeaderLabels() vorhandene Spalten nicht entfernt.

Siehe auch setHeaderItem() und setHeaderLabel().

void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)

Legt fest, dass das angegebene widget in der Zelle angezeigt wird, die durch die angegebenen item und column angegeben ist.

Die Eigenschaft autoFillBackground des angegebenen widget muss auf true gesetzt werden, andernfalls wird der Hintergrund des Widgets transparent sein und sowohl die Modelldaten als auch das Tree-Widget-Element zeigen.

Diese Funktion sollte nur verwendet werden, um statische Inhalte anstelle eines Tree-Widget-Elements anzuzeigen. Wenn Sie benutzerdefinierte dynamische Inhalte anzeigen oder ein benutzerdefiniertes Editor-Widget implementieren möchten, verwenden Sie stattdessen QTreeView und die Unterklasse QStyledItemDelegate.

Diese Funktion kann nicht aufgerufen werden, bevor die Elementhierarchie eingerichtet wurde, d.h. QTreeWidgetItem, das widget enthalten wird, muss der Ansicht hinzugefügt worden sein, bevor widget gesetzt wird.

Hinweis: Der Baum übernimmt das Eigentum an widget.

Siehe auch itemWidget(), removeItemWidget(), und Delegate Classes.

[override virtual] void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)

Reimplements: QTreeView::setSelectionModel(QItemSelectionModel *selectionModel).

int QTreeWidget::sortColumn() const

Gibt die Spalte zurück, die zum Sortieren des Inhalts des Widgets verwendet wird.

Siehe auch sortItems().

void QTreeWidget::sortItems(int column, Qt::SortOrder order)

Sortiert die Elemente im Widget im angegebenen order nach den Werten im angegebenen column.

Siehe auch sortColumn().

[virtual protected] Qt::DropActions QTreeWidget::supportedDropActions() const

Gibt die von dieser Ansicht unterstützten Drop-Aktionen zurück.

Siehe auch Qt::DropActions.

QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)

Entfernt das oberste Element an der angegebenen index im Baum und gibt es zurück, andernfalls gibt es nullptr zurück;

Siehe auch insertTopLevelItem(), topLevelItem(), und topLevelItemCount().

QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const

Gibt den Eintrag der obersten Ebene unter dem angegebenen index zurück, oder nullptr, wenn der Eintrag nicht existiert.

Siehe auch topLevelItemCount() und insertTopLevelItem().

QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const

Gibt das Rechteck im Ansichtsfenster zurück, das von dem Element auf item eingenommen wird.

Siehe auch itemAt().

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