QTreeWidget Class
La clase QTreeWidget proporciona una vista de árbol que utiliza un modelo de árbol predefinido. Más...
| Cabecera: | #include <QTreeWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QTreeView |
Propiedades
- columnCount : int
(since 6.10)supportedDragActions : Qt::DropActions- topLevelItemCount : int
Funciones públicas
| 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) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| int | sortColumn() const |
| void | sortItems(int column, Qt::SortOrder order) |
| Qt::DropActions | supportedDragActions() const |
| QTreeWidgetItem * | takeTopLevelItem(int index) |
| QTreeWidgetItem * | topLevelItem(int index) const |
| int | topLevelItemCount() const |
| QRect | visualItemRect(const QTreeWidgetItem *item) const |
Funciones públicas reimplementadas
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override |
Ranuras públicas
| void | clear() |
| void | collapseItem(const QTreeWidgetItem *item) |
| void | expandItem(const QTreeWidgetItem *item) |
| void | scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
Señales
| 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() |
Funciones protegidas
| 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 |
Funciones protegidas reimplementadas
Descripción Detallada

La clase QTreeWidget es una clase de conveniencia que proporciona un widget de árbol estándar con una interfaz clásica basada en ítems similar a la usada por la clase QListView en Qt 3. Esta clase se basa en la arquitectura Modelo/Vista de Qt y utiliza un modelo predeterminado para contener elementos, cada uno de los cuales es un QTreeWidgetItem.
Los desarrolladores que no necesiten la flexibilidad de la arquitectura Modelo/Vista pueden utilizar esta clase para crear listas jerárquicas sencillas muy fácilmente. Un enfoque más flexible consiste en combinar QTreeView con un modelo de elementos estándar. Esto permite separar el almacenamiento de datos de su representación.
En su forma más simple, un widget de árbol puede construirse de la siguiente manera:
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);
Antes de poder añadir elementos al widget de árbol, debe establecerse el número de columnas con setColumnCount(). Esto permite que cada elemento tenga una o más etiquetas u otras decoraciones. El número de columnas en uso puede averiguarse con la función columnCount().
El árbol puede tener una cabecera que contenga una sección para cada columna del widget. Es más fácil configurar las etiquetas de cada sección suministrando una lista de cadenas con setHeaderLabels(), pero se puede construir una cabecera personalizada con QTreeWidgetItem e insertarla en el árbol con la función setHeaderItem().
Los elementos del árbol pueden ordenarse por columnas según un orden predefinido. Si la ordenación está activada, el usuario puede ordenar los elementos haciendo clic en la cabecera de una columna. La ordenación puede activarse o desactivarse llamando a setSortingEnabled(). La función isSortingEnabled() indica si la ordenación está activada.
Véase también QTreeWidgetItem, QTreeWidgetItemIterator, QTreeView, y Programación Modelo/Vista.
Documentación de propiedades
columnCount : int
Esta propiedad contiene el número de columnas mostradas en el widget de árbol
Por defecto, esta propiedad tiene un valor de 1.
Funciones de acceso:
| int | columnCount() const |
| void | setColumnCount(int columns) |
[since 6.10] supportedDragActions : Qt::DropActions
Esta propiedad contiene las acciones de arrastre soportadas por esta vista
Esta propiedad se introdujo en Qt 6.10.
Funciones de acceso:
| Qt::DropActions | supportedDragActions() const |
| void | setSupportedDragActions(Qt::DropActions actions) |
Véase también Qt::DropActions y supportedDropActions().
[read-only] topLevelItemCount : int
Esta propiedad contiene el número de elementos de nivel superior
Por defecto, esta propiedad tiene un valor de 0.
Funciones de acceso:
| int | topLevelItemCount() const |
Véase también columnCount() y currentItem().
Documentación de las funciones miembro
[explicit] QTreeWidget::QTreeWidget(QWidget *parent = nullptr)
Construye un widget de árbol con la dirección parent.
[virtual noexcept] QTreeWidget::~QTreeWidget()
Destruye el widget de árbol y todos sus elementos.
void QTreeWidget::addTopLevelItem(QTreeWidgetItem *item)
Añade item como elemento de nivel superior en el widget.
Véase también insertTopLevelItem().
void QTreeWidget::addTopLevelItems(const QList<QTreeWidgetItem *> &items)
Añade la lista de items como elemento de nivel superior en el widget.
Véase también insertTopLevelItems().
[slot] void QTreeWidget::clear()
Borra el widget de árbol eliminando todos sus elementos y selecciones.
Nota: Dado que cada elemento se elimina del widget de árbol antes de ser borrado, el valor de retorno de QTreeWidgetItem::treeWidget() no será válido cuando se llame desde el destructor de un elemento.
Véase también takeTopLevelItem(), topLevelItemCount(), y columnCount().
void QTreeWidget::closePersistentEditor(QTreeWidgetItem *item, int column = 0)
Cierra el editor persistente para item en la dirección column.
Esta función no tiene efecto si no hay ningún editor persistente abierto para esta combinación de elemento y columna.
Véase también openPersistentEditor() y isPersistentEditorOpen().
[slot] void QTreeWidget::collapseItem(const QTreeWidgetItem *item)
Cierra item. Esto provoca el colapso del árbol que contiene los elementos hijos.
Véase también expandItem(), currentItem(), itemAt() y topLevelItem().
int QTreeWidget::currentColumn() const
Devuelve la columna actual en el widget de árbol.
Véase también setCurrentItem() y columnCount().
QTreeWidgetItem *QTreeWidget::currentItem() const
Devuelve el elemento actual en el widget de árbol.
Véase también setCurrentItem() y currentItemChanged().
[signal] void QTreeWidget::currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
Esta señal se emite cuando cambia el elemento actual. El elemento actual se especifica mediante current, y éste sustituye al elemento actual previous.
Véase también setCurrentItem().
[override virtual protected] void QTreeWidget::dropEvent(QDropEvent *event)
Reimplementa: QAbstractItemView::dropEvent(QDropEvent *event).
[virtual protected] bool QTreeWidget::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action)
Maneja el data suministrado por una operación de arrastrar y soltar que terminó con el action dado en el index en el elemento parent dado.
La implementación predeterminada devuelve true si la operación de arrastrar y soltar se gestionó correctamente descodificando los datos mime e insertándolos en el modelo; de lo contrario, devuelve false.
Véase también supportedDropActions() y supportedDragActions.
void QTreeWidget::editItem(QTreeWidgetItem *item, int column = 0)
Inicia la edición de item en column si es editable.
[override virtual protected] bool QTreeWidget::event(QEvent *e)
Reimplementa: QAbstractItemView::event(QEvent *event).
[slot] void QTreeWidget::expandItem(const QTreeWidgetItem *item)
Expande item. Esto hace que se expanda el árbol que contiene los elementos hijos.
Véase también collapseItem(), currentItem(), itemAt(), topLevelItem() y itemExpanded().
QList<QTreeWidgetItem *> QTreeWidget::findItems(const QString &text, Qt::MatchFlags flags, int column = 0) const
Devuelve una lista de elementos que coinciden con el text dado , utilizando el flags dado , en el column dado .
QTreeWidgetItem *QTreeWidget::headerItem() const
Devuelve el elemento utilizado para la cabecera del widget de árbol.
Véase también setHeaderItem().
QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column = 0) const
Devuelve el QModelIndex asociado con el item dado en el column dado .
Nota: En versiones de Qt anteriores a la 5.7, esta función tomaba un item que no eraconst.
Véase también itemFromIndex() y topLevelItem().
int QTreeWidget::indexOfTopLevelItem(QTreeWidgetItem *item) const
Devuelve el índice del nivel superior dado item, o -1 si no se puede encontrar el elemento.
Véase también sortItems() y topLevelItemCount().
void QTreeWidget::insertTopLevelItem(int index, QTreeWidgetItem *item)
Inserta el item en index en el nivel superior de la vista.
Si el elemento ya ha sido insertado en otro lugar, no se insertará.
Véase también addTopLevelItem() y columnCount().
void QTreeWidget::insertTopLevelItems(int index, const QList<QTreeWidgetItem *> &items)
Inserta la lista de items en index en el nivel superior de la vista.
Los elementos que ya se hayan insertado en otro lugar no se insertarán.
Véase también addTopLevelItems().
QTreeWidgetItem *QTreeWidget::invisibleRootItem() const
Devuelve el elemento raíz invisible del widget de árbol.
El elemento raíz invisible proporciona acceso a los elementos de nivel superior del widget de árbol a través de la API QTreeWidgetItem, lo que permite escribir funciones que pueden tratar los elementos de nivel superior y sus hijos de manera uniforme; por ejemplo, funciones recursivas.
bool QTreeWidget::isPersistentEditorOpen(QTreeWidgetItem *item, int column = 0) const
Devuelve si un editor persistente está abierto para el elemento item en la columna column.
Véase también openPersistentEditor() y closePersistentEditor().
QTreeWidgetItem *QTreeWidget::itemAbove(const QTreeWidgetItem *item) const
Devuelve el elemento situado por encima de la dirección item.
[signal] void QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
Esta señal se emite cuando el usuario activa un elemento haciendo clic una o dos veces (dependiendo de la plataforma, es decir, en la pista de estilo QStyle::SH_ItemView_ActivateItemOnSingleClick ) o pulsando una tecla especial (por ejemplo, Enter).
El item especificado es el elemento sobre el que se ha hecho clic, o nullptr si no se ha hecho clic sobre ningún elemento. column es la columna del elemento sobre el que se ha hecho clic, o -1 si no se ha hecho clic en ningún elemento.
QTreeWidgetItem *QTreeWidget::itemAt(const QPoint &p) const
Devuelve un puntero al elemento en las coordenadas p. Las coordenadas son relativas al widget de árbol viewport().
Véase también visualItemRect().
QTreeWidgetItem *QTreeWidget::itemAt(int x, int y) const
Devuelve un puntero al elemento en las coordenadas (x, y). Las coordenadas son relativas al widget de árbol viewport().
Se trata de una función sobrecargada.
QTreeWidgetItem *QTreeWidget::itemBelow(const QTreeWidgetItem *item) const
Devuelve el elemento visualmente por debajo del item dado .
[signal] void QTreeWidget::itemChanged(QTreeWidgetItem *item, int column)
Esta señal se emite cuando cambia el contenido del column en el item especificado.
[signal] void QTreeWidget::itemClicked(QTreeWidgetItem *item, int column)
Esta señal se emite cuando el usuario hace clic dentro del widget.
El item especificado es el elemento sobre el que se ha hecho clic. column es la columna del elemento sobre el que se ha hecho clic. Si no se ha hecho clic en ningún elemento, no se emitirá ninguna señal.
[signal] void QTreeWidget::itemCollapsed(QTreeWidgetItem *item)
Esta señal se emite cuando el item especificado se colapsa de forma que no se muestra ninguno de sus hijos.
Nota: Esta señal no se emite si un elemento cambia de estado cuando se invoca collapseAll().
Véase también QTreeWidgetItem::isExpanded(), itemExpanded() y collapseItem().
[signal] void QTreeWidget::itemDoubleClicked(QTreeWidgetItem *item, int column)
Esta señal se emite cuando el usuario hace doble clic dentro del widget.
El item especificado es el elemento sobre el que se ha hecho clic, o nullptr si no se ha hecho clic sobre ningún elemento. column es la columna del elemento sobre el que se ha hecho clic. Si no se ha hecho doble clic en ningún elemento, no se emitirá ninguna señal.
[signal] void QTreeWidget::itemEntered(QTreeWidgetItem *item, int column)
Esta señal se emite cuando el cursor del ratón entra en un item sobre el column especificado. El seguimiento del ratón QTreeWidget debe estar activado para que esta función funcione.
[signal] void QTreeWidget::itemExpanded(QTreeWidgetItem *item)
Esta señal se emite cuando el item especificado se expande para que se muestren todos sus hijos.
Véase también QTreeWidgetItem::isExpanded(), itemCollapsed() y expandItem().
QTreeWidgetItem *QTreeWidget::itemFromIndex(const QModelIndex &index) const
Devuelve un puntero al QTreeWidgetItem asociado con el index dado.
Véase también indexFromItem().
[signal] void QTreeWidget::itemPressed(QTreeWidgetItem *item, int column)
Esta señal se emite cuando el usuario pulsa un botón del ratón dentro del widget.
El item especificado es el elemento sobre el que se ha pulsado, o nullptr si no se ha pulsado ningún elemento. column es la columna del elemento sobre el que se ha pulsado, o -1 si no se ha pulsado ningún elemento.
[signal] void QTreeWidget::itemSelectionChanged()
Esta señal se emite cuando cambia la selección en el widget de árbol. La selección actual se puede encontrar con selectedItems().
QWidget *QTreeWidget::itemWidget(QTreeWidgetItem *item, int column) const
Devuelve el widget mostrado en la celda especificada por item y la dada column.
Véase también setItemWidget() y removeItemWidget().
[virtual protected] QMimeData *QTreeWidget::mimeData(const QList<QTreeWidgetItem *> &items) const
Devuelve un objeto que contiene una descripción serializada del items especificado. El formato utilizado para describir los elementos se obtiene de la función mimeTypes().
Si la lista de elementos está vacía, se devuelve nullptr en lugar de una lista vacía serializada.
[virtual protected] QStringList QTreeWidget::mimeTypes() const
Devuelve una lista de tipos MIME que pueden utilizarse para describir una lista de elementos treewidget.
Véase también mimeData().
void QTreeWidget::openPersistentEditor(QTreeWidgetItem *item, int column = 0)
Abre un editor persistente para el item en el column dado.
Véase también closePersistentEditor() y isPersistentEditorOpen().
void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)
Elimina el widget establecido en el item dado en el column dado.
Véase también itemWidget() y setItemWidget().
[slot] void QTreeWidget::scrollToItem(const QTreeWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)
Asegura que item esté visible, desplazando la vista si es necesario utilizando el hint especificado.
Véase también currentItem(), itemAt() y topLevelItem().
QList<QTreeWidgetItem *> QTreeWidget::selectedItems() const
Devuelve una lista de todos los elementos no ocultos seleccionados.
Véase también itemSelectionChanged().
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item)
Establece el item actual en el widget de árbol.
A menos que el modo de selección sea NoSelection, el elemento también se selecciona.
Véase también currentItem() y currentItemChanged().
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column)
Establece el item actual en el widget de árbol y la columna actual en column.
Véase también currentItem().
void QTreeWidget::setCurrentItem(QTreeWidgetItem *item, int column, QItemSelectionModel::SelectionFlags command)
Establece el item actual en el widget de árbol y la columna actual en column, utilizando el command dado.
Véase también currentItem().
void QTreeWidget::setHeaderItem(QTreeWidgetItem *item)
Establece la cabecera item para el widget de árbol. La etiqueta de cada columna de la cabecera viene dada por la etiqueta correspondiente del elemento.
El widget de árbol se apropia del elemento.
Véase también headerItem() y setHeaderLabels().
void QTreeWidget::setHeaderLabel(const QString &label)
Igual que setHeaderLabels(QStringList(label)).
void QTreeWidget::setHeaderLabels(const QStringList &labels)
Añade una columna en la cabecera para cada elemento de la lista labels, y establece la etiqueta de cada columna.
Tenga en cuenta que setHeaderLabels() no eliminará las columnas existentes.
Véase también setHeaderItem() y setHeaderLabel().
void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column, QWidget *widget)
Establece widget para que se muestre en la celda especificada por item y column.
La propiedad autoFillBackground de widget debe ser verdadera, de lo contrario el fondo del widget será transparente, mostrando tanto los datos del modelo como el elemento del widget de árbol.
Esta función sólo debe utilizarse para mostrar contenido estático en lugar de un elemento del widget de árbol. Si desea mostrar contenido dinámico personalizado o implementar un widget de editor personalizado, utilice QTreeView y la subclase QStyledItemDelegate en su lugar.
Esta función no puede ser llamada antes de que la jerarquía de elementos haya sido configurada, es decir, el QTreeWidgetItem que contendrá widget debe haber sido añadido a la vista antes de que widget sea configurado.
Nota: El árbol se apropia de widget.
Véase también itemWidget(), removeItemWidget(), y Clases delegadas.
[override virtual] void QTreeWidget::setSelectionModel(QItemSelectionModel *selectionModel)
Reimplementa: QTreeView::setSelectionModel(QItemSelectionModel *selectionModel).
int QTreeWidget::sortColumn() const
Devuelve la columna utilizada para ordenar el contenido del widget.
Véase también sortItems().
void QTreeWidget::sortItems(int column, Qt::SortOrder order)
Ordena los elementos del widget en el order especificado por los valores en el column dado.
Véase también sortColumn().
[virtual protected] Qt::DropActions QTreeWidget::supportedDropActions() const
Devuelve las acciones de soltar soportadas por esta vista.
Véase también Qt::DropActions, supportedDragActions, y dropMimeData().
QTreeWidgetItem *QTreeWidget::takeTopLevelItem(int index)
Elimina el elemento de nivel superior en el index dado en el árbol y lo devuelve, de lo contrario devuelve nullptr;
Véase también insertTopLevelItem(), topLevelItem() y topLevelItemCount().
QTreeWidgetItem *QTreeWidget::topLevelItem(int index) const
Devuelve el elemento de nivel superior en el index dado , o nullptr si el elemento no existe.
Véase también topLevelItemCount() y insertTopLevelItem().
QRect QTreeWidget::visualItemRect(const QTreeWidgetItem *item) const
Devuelve el rectángulo de la ventana gráfica ocupado por el elemento en item.
Véase también itemAt().
© 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.