QListWidget Class
La clase QListWidget proporciona un widget de lista basado en elementos. Más...
| Cabecera: | #include <QListWidget> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QListView |
Propiedades
- count : int
- currentRow : int
- sortingEnabled : bool
(since 6.10)supportedDragActions : Qt::DropActions
Funciones públicas
| QListWidget(QWidget *parent = nullptr) | |
| virtual | ~QListWidget() |
| void | addItem(QListWidgetItem *item) |
| void | addItem(const QString &label) |
| void | addItems(const QStringList &labels) |
| void | closePersistentEditor(QListWidgetItem *item) |
| int | count() const |
| QListWidgetItem * | currentItem() const |
| int | currentRow() const |
| void | editItem(QListWidgetItem *item) |
| QList<QListWidgetItem *> | findItems(const QString &text, Qt::MatchFlags flags) const |
| QModelIndex | indexFromItem(const QListWidgetItem *item) const |
| void | insertItem(int row, QListWidgetItem *item) |
| void | insertItem(int row, const QString &label) |
| void | insertItems(int row, const QStringList &labels) |
| bool | isPersistentEditorOpen(QListWidgetItem *item) const |
| bool | isSortingEnabled() const |
| QListWidgetItem * | item(int row) const |
| QListWidgetItem * | itemAt(const QPoint &p) const |
| QListWidgetItem * | itemAt(int x, int y) const |
| QListWidgetItem * | itemFromIndex(const QModelIndex &index) const |
| QWidget * | itemWidget(QListWidgetItem *item) const |
| QList<QListWidgetItem *> | items(const QMimeData *data) const |
| void | openPersistentEditor(QListWidgetItem *item) |
| void | removeItemWidget(QListWidgetItem *item) |
| int | row(const QListWidgetItem *item) const |
| QList<QListWidgetItem *> | selectedItems() const |
| void | setCurrentItem(QListWidgetItem *item) |
| void | setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command) |
| void | setCurrentRow(int row) |
| void | setCurrentRow(int row, QItemSelectionModel::SelectionFlags command) |
| void | setItemWidget(QListWidgetItem *item, QWidget *widget) |
| void | setSortingEnabled(bool enable) |
| void | setSupportedDragActions(Qt::DropActions actions) |
| void | sortItems(Qt::SortOrder order = Qt::AscendingOrder) |
| Qt::DropActions | supportedDragActions() const |
| QListWidgetItem * | takeItem(int row) |
| QRect | visualItemRect(const QListWidgetItem *item) const |
Funciones públicas reimplementadas
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) override |
Ranuras públicas
| void | clear() |
| void | scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) |
Señales
| void | currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) |
| void | currentRowChanged(int currentRow) |
| void | currentTextChanged(const QString ¤tText) |
| void | itemActivated(QListWidgetItem *item) |
| void | itemChanged(QListWidgetItem *item) |
| void | itemClicked(QListWidgetItem *item) |
| void | itemDoubleClicked(QListWidgetItem *item) |
| void | itemEntered(QListWidgetItem *item) |
| void | itemPressed(QListWidgetItem *item) |
| void | itemSelectionChanged() |
Funciones protegidas
| virtual bool | dropMimeData(int index, const QMimeData *data, Qt::DropAction action) |
| virtual QMimeData * | mimeData(const QList<QListWidgetItem *> &items) const |
| virtual QStringList | mimeTypes() const |
| virtual Qt::DropActions | supportedDropActions() const |
Funciones protegidas reimplementadas
Descripción Detallada

QListWidget es una clase de conveniencia que proporciona una vista de lista similar a la proporcionada por QListView, pero con una interfaz clásica basada en ítems para añadir y eliminar ítems. QListWidget utiliza un modelo interno para gestionar cada QListWidgetItem de la lista.
Para un widget de vista de lista más flexible, utilice la clase QListView con un modelo estándar.
Los widgets de lista se construyen de la misma forma que otros widgets:
QListWidget *listWidget = new QListWidget(this);
selectionMode() de un widget de lista determina cuántos de los elementos de la lista se pueden seleccionar al mismo tiempo, y si se pueden crear selecciones complejas de elementos. Esto puede establecerse con la función setSelectionMode().
Hay dos formas de añadir elementos a la lista: pueden construirse con el widget de lista como widget padre, o pueden construirse sin widget padre y añadirse a la lista más tarde. Si ya existe un widget de lista cuando se construyen los elementos, el primer método es más fácil de usar:
new QListWidgetItem(tr("Oak"), listWidget); new QListWidgetItem(tr("Fir"), listWidget); new QListWidgetItem(tr("Pine"), listWidget);
Si necesitas insertar un nuevo elemento en la lista en una posición concreta, entonces debería construirse sin un widget padre. A continuación, debe utilizarse la función insertItem() para colocarlo dentro de la lista. El widget de la lista tomará posesión del elemento.
QListWidgetItem *newItem = new QListWidgetItem; newItem->setText(itemText); listWidget->insertItem(row, newItem);
Para varios elementos, puede utilizarse insertItems(). El número de elementos de la lista se obtiene con la función count(). Para eliminar elementos de la lista, utilice takeItem().
El elemento actual de la lista se puede encontrar con currentItem(), y cambiar con setCurrentItem(). El usuario también puede cambiar el elemento actual navegando con el teclado o haciendo clic en un elemento diferente. Cuando cambia el elemento actual, se emite la señal currentItemChanged() con el nuevo elemento actual y el elemento que era actual anteriormente.
Véase también QListWidgetItem, QListView, QTreeView, Programación Modelo/Vista, y Ejemplo de diálogo de pestañas.
Documentación de propiedades
[read-only] count : int
Esta propiedad contiene el número de elementos de la lista, incluidos los elementos ocultos.
Funciones de acceso:
| int | count() const |
currentRow : int
Esta propiedad contiene la fila del elemento actual.
Dependiendo del modo de selección actual, la fila también puede estar seleccionada.
Funciones de acceso:
| int | currentRow() const |
| void | setCurrentRow(int row) |
| void | setCurrentRow(int row, QItemSelectionModel::SelectionFlags command) |
Señal del notificador:
| void | currentRowChanged(int currentRow) |
sortingEnabled : bool
Esta propiedad indica si la ordenación está habilitada
Si esta propiedad es true, la ordenación está habilitada para la lista; si la propiedad es false, la ordenación no está habilitada.
El valor por defecto es false.
Funciones de acceso:
| bool | isSortingEnabled() const |
| void | setSortingEnabled(bool enable) |
[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().
Documentación de la función miembro
[explicit] QListWidget::QListWidget(QWidget *parent = nullptr)
Construye un QListWidget vacío con la dirección parent.
[virtual noexcept] QListWidget::~QListWidget()
Destruye el widget de lista y todos sus elementos.
void QListWidget::addItem(QListWidgetItem *item)
Inserta la dirección item al final del widget de lista.
Atención: Un QListWidgetItem sólo puede añadirse a un QListWidget una vez. Si se añade el mismo QListWidgetItem varias veces a un QListWidget se producirá un comportamiento indefinido.
Véase también insertItem().
void QListWidget::addItem(const QString &label)
Inserta un elemento con el texto label al final del widget de lista.
void QListWidget::addItems(const QStringList &labels)
Inserta elementos con el texto labels al final del widget de lista.
Véase también insertItems().
[slot] void QListWidget::clear()
Elimina todos los elementos y selecciones de la vista.
Advertencia: Todos los elementos se eliminarán permanentemente.
void QListWidget::closePersistentEditor(QListWidgetItem *item)
Cierra el editor persistente para la dirección item.
Véase también openPersistentEditor() y isPersistentEditorOpen().
QListWidgetItem *QListWidget::currentItem() const
Devuelve el elemento actual.
Véase también setCurrentItem().
[signal] void QListWidget::currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
Esta señal se emite cada vez que cambia el elemento actual.
previous es el elemento que anteriormente tenía el foco; current es el nuevo elemento actual.
[signal] void QListWidget::currentRowChanged(int currentRow)
Esta señal se emite cada vez que cambia el elemento actual.
currentRow es la fila del elemento actual. Si no hay elemento actual, currentRow es -1.
Nota: Señal notificadora para la propiedad currentRow.
[signal] void QListWidget::currentTextChanged(const QString ¤tText)
Esta señal se emite cada vez que cambia el elemento actual.
currentText son los datos de texto del elemento actual. Si no hay elemento actual, currentText no es válido.
[override virtual protected] void QListWidget::dropEvent(QDropEvent *event)
Reimplementa: QListView::dropEvent(QDropEvent *event).
[virtual protected] bool QListWidget::dropMimeData(int index, const QMimeData *data, Qt::DropAction action)
Maneja data suministrado por una operación externa de arrastrar y soltar que terminó con el action dado en el index dado . Devuelve true si data y action pueden ser manejados por el modelo; en caso contrario devuelve false.
Véase también supportedDropActions() y supportedDragActions.
void QListWidget::editItem(QListWidgetItem *item)
Inicia la edición de item si es editable.
[override virtual protected] bool QListWidget::event(QEvent *e)
Reimplementa: QListView::event(QEvent *e).
QList<QListWidgetItem *> QListWidget::findItems(const QString &text, Qt::MatchFlags flags) const
Busca elementos cuyo texto coincida con la cadena text utilizando la dirección flags.
QModelIndex QListWidget::indexFromItem(const QListWidgetItem *item) const
Devuelve el QModelIndex asociado con el item dado.
Nota: En versiones de Qt anteriores a la 5.10, esta función tomaba un item que no eraconst.
void QListWidget::insertItem(int row, QListWidgetItem *item)
Inserta el item en la posición de la lista dada por row.
Véase también addItem().
void QListWidget::insertItem(int row, const QString &label)
Inserta un elemento con el texto label en el widget de lista en la posición dada por row.
Véase también addItem().
void QListWidget::insertItems(int row, const QStringList &labels)
Inserta elementos de la lista de labels en la lista, comenzando en el row dado.
Véase también insertItem() y addItem().
bool QListWidget::isPersistentEditorOpen(QListWidgetItem *item) const
Devuelve si hay un editor persistente abierto para el elemento item.
Véase también openPersistentEditor() y closePersistentEditor().
QListWidgetItem *QListWidget::item(int row) const
Devuelve el elemento que ocupa el row dado en la lista si se ha establecido uno; en caso contrario devuelve nullptr.
Véase también row().
[signal] void QListWidget::itemActivated(QListWidgetItem *item)
Esta señal se emite cuando se activa el item. El item se activa cuando el usuario hace clic o doble clic sobre él, dependiendo de la configuración del sistema. También se activa cuando el usuario pulsa la tecla de activación (en Windows y X11 es la tecla Return, en Mac OS X es Command+O).
QListWidgetItem *QListWidget::itemAt(const QPoint &p) const
Devuelve un puntero al elemento en las coordenadas p. Las coordenadas son relativas al widget de lista viewport().
QListWidgetItem *QListWidget::itemAt(int x, int y) const
Devuelve un puntero al elemento en las coordenadas (x, y). Las coordenadas son relativas al widget de lista viewport().
Se trata de una función sobrecargada.
[signal] void QListWidget::itemChanged(QListWidgetItem *item)
Esta señal se emite cuando cambian los datos de item.
[signal] void QListWidget::itemClicked(QListWidgetItem *item)
Esta señal se emite con la dirección item especificada cuando se pulsa el botón del ratón sobre un elemento del widget.
Véase también itemPressed() y itemDoubleClicked().
[signal] void QListWidget::itemDoubleClicked(QListWidgetItem *item)
Esta señal se emite con la dirección item especificada cuando se hace doble clic con el botón del ratón sobre un elemento del widget.
Véase también itemClicked() y itemPressed().
[signal] void QListWidget::itemEntered(QListWidgetItem *item)
Esta señal se emite cuando el cursor del ratón entra en un elemento. El item es el elemento introducido. Esta señal sólo se emite cuando mouseTracking está activado, o cuando se pulsa un botón del ratón al entrar en un elemento.
Véase también QWidget::setMouseTracking().
QListWidgetItem *QListWidget::itemFromIndex(const QModelIndex &index) const
Devuelve un puntero a la dirección QListWidgetItem asociada a la dirección index.
[signal] void QListWidget::itemPressed(QListWidgetItem *item)
Esta señal se emite con la dirección item especificada cuando se pulsa el botón del ratón sobre un elemento del widget.
Véase también itemClicked() y itemDoubleClicked().
[signal] void QListWidget::itemSelectionChanged()
Esta señal se emite cada vez que cambia la selección.
Véase también selectedItems(), QListWidgetItem::isSelected() y currentItemChanged().
QWidget *QListWidget::itemWidget(QListWidgetItem *item) const
Devuelve el widget mostrado en la dirección item.
Véase también setItemWidget() y removeItemWidget().
QList<QListWidgetItem *> QListWidget::items(const QMimeData *data) const
Devuelve una lista de punteros a los elementos contenidos en el objeto data. Si el objeto no fue creado por un QListWidget en el mismo proceso, la lista está vacía.
[virtual protected] QMimeData *QListWidget::mimeData(const QList<QListWidgetItem *> &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 QListWidget::mimeTypes() const
Devuelve una lista de tipos MIME que pueden utilizarse para describir una lista de elementos listwidget.
Véase también mimeData().
void QListWidget::openPersistentEditor(QListWidgetItem *item)
Abre un editor para la dirección item. El editor permanece abierto después de la edición.
Véase también closePersistentEditor() y isPersistentEditorOpen().
void QListWidget::removeItemWidget(QListWidgetItem *item)
Elimina el conjunto de widgets de item.
Para eliminar un elemento (fila) de la lista por completo, elimínelo o utilice takeItem().
Véase también itemWidget() y setItemWidget().
int QListWidget::row(const QListWidgetItem *item) const
Devuelve la fila que contiene la dirección item.
Véase también item().
[slot] void QListWidget::scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)
Desplaza la vista si es necesario para garantizar que item sea visible.
hint especifica dónde debe situarse item tras la operación.
QList<QListWidgetItem *> QListWidget::selectedItems() const
Devuelve una lista de todos los elementos seleccionados en el widget de lista.
void QListWidget::setCurrentItem(QListWidgetItem *item)
Establece el elemento actual en item.
A menos que el modo de selección sea NoSelection, el elemento también se selecciona.
Véase también currentItem().
void QListWidget::setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)
Establece el elemento actual en item, utilizando el command dado.
void QListWidget::setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)
Establece la fila actual como row, utilizando la propiedad command,
Nota: Función Setter para la propiedad currentRow.
Véase también currentRow().
void QListWidget::setItemWidget(QListWidgetItem *item, QWidget *widget)
Establece el widget que se mostrará en el item dado.
Esta función sólo debe utilizarse para mostrar contenido estático en lugar de un elemento del widget de lista. Si desea mostrar contenido dinámico personalizado o implementar un widget de editor personalizado, utilice QListView y la subclase QStyledItemDelegate en su lugar.
Nota: La lista se apropia de widget.
Véase también itemWidget(), removeItemWidget(), y Clases delegadas.
[override virtual] void QListWidget::setSelectionModel(QItemSelectionModel *selectionModel)
Reimplementa: QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel).
void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)
Ordena todos los elementos del widget de lista según la dirección order especificada.
[virtual protected] Qt::DropActions QListWidget::supportedDropActions() const
Devuelve las acciones de soltar soportadas por esta vista.
Véase también Qt::DropActions, supportedDragActions, y dropMimeData().
QListWidgetItem *QListWidget::takeItem(int row)
Elimina y devuelve el elemento de la row dada en el widget de lista; en caso contrario devuelve nullptr.
Los elementos eliminados de un widget de lista no serán gestionados por Qt, y tendrán que ser eliminados manualmente.
Véase también insertItem() y addItem().
QRect QListWidget::visualItemRect(const QListWidgetItem *item) const
Devuelve el rectángulo de la ventana gráfica ocupado por el elemento en item.
© 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.