QListWidget Class

Die Klasse QListWidget stellt ein Element-basiertes Listen-Widget zur Verfügung. Mehr...

Kopfzeile: #include <QListWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt: QListView

Eigenschaften

Öffentliche Funktionen

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, QItemSelectionModel::SelectionFlags command)
void setCurrentRow(int row)
void setItemWidget(QListWidgetItem *item, QWidget *widget)
void setSortingEnabled(bool enable)
void sortItems(Qt::SortOrder order = Qt::AscendingOrder)
QListWidgetItem *takeItem(int row)
QRect visualItemRect(const QListWidgetItem *item) const

Reimplementierte öffentliche Funktionen

virtual void setSelectionModel(QItemSelectionModel *selectionModel) override

Öffentliche Slots

void clear()
void scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible)

Signale

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()

Geschützte Funktionen

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

Reimplementierte geschützte Funktionen

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

Detaillierte Beschreibung

QListWidget ist eine Komfortklasse, die eine Listenansicht ähnlich der von QListView bereitgestellten bietet, jedoch mit einer klassischen, auf Elementen basierenden Schnittstelle zum Hinzufügen und Entfernen von Elementen. QListWidget verwendet ein internes Modell, um jedes QListWidgetItem in der Liste zu verwalten.

Für ein flexibleres Listenansicht-Widget verwenden Sie die Klasse QListView mit einem Standardmodell.

Listen-Widgets werden auf die gleiche Weise konstruiert wie andere Widgets:

    QListWidget *listWidget = new QListWidget(this);

Die selectionMode() eines Listen-Widgets bestimmt, wie viele der Elemente in der Liste gleichzeitig ausgewählt werden können und ob komplexe Auswahlen von Elementen erstellt werden können. Dies kann mit der Funktion setSelectionMode() eingestellt werden.

Es gibt zwei Möglichkeiten, Elemente zur Liste hinzuzufügen: Sie können mit dem Listen-Widget als übergeordnetem Widget erstellt werden, oder sie können ohne übergeordnetes Widget erstellt und später zur Liste hinzugefügt werden. Wenn ein Listen-Widget bereits vorhanden ist, wenn die Elemente erstellt werden, ist die erste Methode einfacher zu verwenden:

    new QListWidgetItem(tr("Oak"), listWidget);
    new QListWidgetItem(tr("Fir"), listWidget);
    new QListWidgetItem(tr("Pine"), listWidget);

Wenn Sie ein neues Element an einer bestimmten Position in die Liste einfügen müssen, sollte es ohne ein übergeordnetes Widget erstellt werden. Die Funktion insertItem() sollte dann verwendet werden, um es in der Liste zu platzieren. Das Listen-Widget wird Eigentümer des Eintrags.

    QListWidgetItem *newItem = new QListWidgetItem;
    newItem->setText(itemText);
    listWidget->insertItem(row, newItem);

Für mehrere Elemente kann stattdessen insertItems() verwendet werden. Die Anzahl der Einträge in der Liste wird mit der Funktion count() ermittelt. Um Elemente aus der Liste zu entfernen, verwenden Sie takeItem().

Das aktuelle Element in der Liste kann mit currentItem() ermittelt und mit setCurrentItem() geändert werden. Der Benutzer kann das aktuelle Element auch ändern, indem er mit der Tastatur navigiert oder auf ein anderes Element klickt. Wenn sich das aktuelle Element ändert, wird das Signal currentItemChanged() mit dem neuen aktuellen Element und dem zuvor aktuellen Element ausgegeben.

Siehe auch QListWidgetItem, QListView, QTreeView, Model/View-Programmierung und Tabulator-Dialog Beispiel.

Dokumentation der Eigenschaft

[read-only] count : const int

Diese Eigenschaft enthält die Anzahl der Elemente in der Liste, einschließlich aller ausgeblendeten Elemente.

Zugriffsfunktionen:

int count() const

currentRow : int

Diese Eigenschaft enthält die Zeile des aktuellen Elements.

Je nach aktuellem Auswahlmodus kann die Zeile auch ausgewählt sein.

Zugriffsfunktionen:

int currentRow() const
void setCurrentRow(int row)
void setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)

Benachrichtigungssignal:

void currentRowChanged(int currentRow)

sortingEnabled : bool

Diese Eigenschaft gibt an, ob die Sortierung aktiviert ist.

Wenn diese Eigenschaft true ist, ist die Sortierung für die Liste aktiviert; wenn die Eigenschaft false ist, ist die Sortierung nicht aktiviert.

Der Standardwert ist false.

Zugriffsfunktionen:

bool isSortingEnabled() const
void setSortingEnabled(bool enable)

Dokumentation der Mitgliedsfunktionen

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

Konstruiert ein leeres QListWidget mit der angegebenen parent.

[virtual noexcept] QListWidget::~QListWidget()

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

void QListWidget::addItem(QListWidgetItem *item)

Fügt das item am Ende des Listen-Widgets ein.

Achtung! Ein QListWidgetItem kann nur einmal zu einem QListWidget hinzugefügt werden. Das mehrfache Hinzufügen desselben QListWidgetItem zu einem QListWidget führt zu undefiniertem Verhalten.

Siehe auch insertItem().

void QListWidget::addItem(const QString &label)

Fügt ein Element mit dem Text label am Ende des Listen-Widgets ein.

void QListWidget::addItems(const QStringList &labels)

Fügt Elemente mit dem Text labels am Ende des Listen-Widgets ein.

Siehe auch insertItems().

[slot] void QListWidget::clear()

Entfernt alle Elemente und Auswahlen in der Ansicht.

Warnung: Alle Elemente werden dauerhaft gelöscht.

void QListWidget::closePersistentEditor(QListWidgetItem *item)

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

Siehe auch openPersistentEditor() und isPersistentEditorOpen().

QListWidgetItem *QListWidget::currentItem() const

Gibt das aktuelle Element zurück.

Siehe auch setCurrentItem().

[signal] void QListWidget::currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)

Dieses Signal wird ausgegeben, wenn sich das aktuelle Element ändert.

previous ist das Element, das zuvor den Fokus hatte; current ist das neue aktuelle Element.

[signal] void QListWidget::currentRowChanged(int currentRow)

Dieses Signal wird ausgegeben, wenn sich das aktuelle Element ändert.

currentRow ist die Zeile des aktuellen Eintrags. Wenn es kein aktuelles Element gibt, ist currentRow -1.

Hinweis: Benachrichtigungssignal für die Eigenschaft currentRow.

[signal] void QListWidget::currentTextChanged(const QString &currentText)

Dieses Signal wird ausgegeben, wenn sich der aktuelle Eintrag ändert.

currentText sind die Textdaten des aktuellen Eintrags. Wenn es kein aktuelles Element gibt, ist currentText ungültig.

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

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

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

Behandelt data, das von einem externen Drag&Drop-Vorgang geliefert wurde, der mit dem angegebenen action im angegebenen index endete. Gibt true zurück, wenn data und action vom Modell verarbeitet werden können; andernfalls gibt es false zurück.

Siehe auch supportedDropActions().

void QListWidget::editItem(QListWidgetItem *item)

Beginnt mit der Bearbeitung von item, sofern es bearbeitbar ist.

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

Reimplements: QListView::event(QEvent *e).

QList<QListWidgetItem *> QListWidget::findItems(const QString &text, Qt::MatchFlags flags) const

Findet Elemente mit dem Text, der mit der Zeichenkette text übereinstimmt, unter Verwendung der angegebenen flags.

QModelIndex QListWidget::indexFromItem(const QListWidgetItem *item) const

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

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

void QListWidget::insertItem(int row, QListWidgetItem *item)

Fügt item an der durch row angegebenen Position in der Liste ein.

Siehe auch addItem().

void QListWidget::insertItem(int row, const QString &label)

Fügt einen Eintrag mit dem Text label in das Listen-Widget an der durch row angegebenen Position ein.

Siehe auch addItem().

void QListWidget::insertItems(int row, const QStringList &labels)

Fügt Elemente aus der Liste labels in die Liste ein, beginnend mit dem angegebenen row.

Siehe auch insertItem() und addItem().

bool QListWidget::isPersistentEditorOpen(QListWidgetItem *item) const

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

Siehe auch openPersistentEditor() und closePersistentEditor().

QListWidgetItem *QListWidget::item(int row) const

Gibt das Element zurück, das die angegebene row in der Liste belegt, wenn eines gesetzt wurde; andernfalls wird nullptr zurückgegeben.

Siehe auch row().

[signal] void QListWidget::itemActivated(QListWidgetItem *item)

Dieses Signal wird ausgegeben, wenn die item aktiviert wird. Die item wird aktiviert, wenn der Benutzer darauf klickt oder doppelklickt, je nach Systemkonfiguration. Es wird auch aktiviert, wenn der Benutzer die Aktivierungstaste drückt (unter Windows und X11 ist dies die Taste Return, unter Mac OS X ist es Command+O).

QListWidgetItem *QListWidget::itemAt(const QPoint &p) const

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

QListWidgetItem *QListWidget::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 Listen-Widgets.

[signal] void QListWidget::itemChanged(QListWidgetItem *item)

Dieses Signal wird ausgegeben, wenn sich die Daten von item geändert haben.

[signal] void QListWidget::itemClicked(QListWidgetItem *item)

Dieses Signal wird mit dem angegebenen item ausgegeben, wenn eine Maustaste auf ein Element im Widget geklickt wird.

Siehe auch itemPressed() und itemDoubleClicked().

[signal] void QListWidget::itemDoubleClicked(QListWidgetItem *item)

Dieses Signal wird mit dem angegebenen item ausgegeben, wenn eine Maustaste doppelt auf ein Element im Widget geklickt wird.

Siehe auch itemClicked() und itemPressed().

[signal] void QListWidget::itemEntered(QListWidgetItem *item)

Dieses Signal wird ausgegeben, wenn der Mauszeiger ein Element betritt. Die Adresse item ist der eingegebene Eintrag. Dieses Signal wird nur ausgegeben, wenn mouseTracking eingeschaltet ist oder wenn eine Maustaste gedrückt wird, während der Mauszeiger ein Objekt betritt.

Siehe auch QWidget::setMouseTracking().

QListWidgetItem *QListWidget::itemFromIndex(const QModelIndex &index) const

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

[signal] void QListWidget::itemPressed(QListWidgetItem *item)

Dieses Signal wird mit dem angegebenen item ausgegeben, wenn eine Maustaste auf ein Element im Widget gedrückt wird.

Siehe auch itemClicked() und itemDoubleClicked().

[signal] void QListWidget::itemSelectionChanged()

Dieses Signal wird immer dann ausgegeben, wenn sich die Auswahl ändert.

Siehe auch selectedItems(), QListWidgetItem::isSelected(), und currentItemChanged().

QWidget *QListWidget::itemWidget(QListWidgetItem *item) const

Gibt das Widget zurück, das in dem angegebenen item angezeigt wird.

Siehe auch setItemWidget() und removeItemWidget().

QList<QListWidgetItem *> QListWidget::items(const QMimeData *data) const

Gibt eine Liste von Zeigern auf die im Objekt data enthaltenen Elemente zurück. Wurde das Objekt nicht von einem QListWidget im selben Prozess erstellt, ist die Liste leer.

[virtual protected] QMimeData *QListWidget::mimeData(const QList<QListWidgetItem *> &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 QListWidget::mimeTypes() const

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

Siehe auch mimeData().

void QListWidget::openPersistentEditor(QListWidgetItem *item)

Öffnet einen Editor für die angegebene item. Der Editor bleibt nach der Bearbeitung geöffnet.

Siehe auch closePersistentEditor() und isPersistentEditorOpen().

void QListWidget::removeItemWidget(QListWidgetItem *item)

Entfernt den Widgetsatz auf dem angegebenen item.

Um ein Element (eine Zeile) vollständig aus der Liste zu entfernen, löschen Sie entweder das Element oder verwenden Sie takeItem().

Siehe auch itemWidget() und setItemWidget().

int QListWidget::row(const QListWidgetItem *item) const

Gibt die Zeile zurück, die die angegebene item enthält.

Siehe auch item().

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

Scrollt die Ansicht, falls erforderlich, um sicherzustellen, dass item sichtbar ist.

hint gibt an, wo sich die item nach dem Vorgang befinden soll.

QList<QListWidgetItem *> QListWidget::selectedItems() const

Gibt eine Liste aller ausgewählten Elemente im Listen-Widget zurück.

void QListWidget::setCurrentItem(QListWidgetItem *item)

Setzt das aktuelle Element auf item.

Wenn der Auswahlmodus nicht NoSelection ist, wird der Eintrag ebenfalls ausgewählt.

Siehe auch currentItem().

void QListWidget::setCurrentItem(QListWidgetItem *item, QItemSelectionModel::SelectionFlags command)

Setzt das aktuelle Element auf item, unter Verwendung der angegebenen command.

void QListWidget::setCurrentRow(int row, QItemSelectionModel::SelectionFlags command)

Setzt die aktuelle Zeile auf die angegebene row, unter Verwendung der angegebenen command,

Hinweis: Setter-Funktion für die Eigenschaft currentRow.

Siehe auch currentRow().

void QListWidget::setItemWidget(QListWidgetItem *item, QWidget *widget)

Legt die widget fest, die in der angegebenen item angezeigt werden soll.

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

Hinweis: Die Liste übernimmt das Eigentum an widget.

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

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

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

void QListWidget::sortItems(Qt::SortOrder order = Qt::AscendingOrder)

Sortiert alle Elemente im Listen-Widget entsprechend der angegebenen order.

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

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

Siehe auch Qt::DropActions.

QListWidgetItem *QListWidget::takeItem(int row)

Entfernt das Element aus dem angegebenen row im Listen-Widget und gibt es zurück; andernfalls wird nullptr zurückgegeben.

Elemente, die aus einem Listenwidget entfernt werden, werden nicht von Qt verwaltet und müssen manuell gelöscht werden.

Siehe auch insertItem() und addItem().

QRect QListWidget::visualItemRect(const QListWidgetItem *item) const

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

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