En esta página

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

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 &currentText)
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

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

Descripción Detallada

Lista de iconos meteorológicos

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 &currentText)

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.