Auf dieser Seite

QAbstractListModel Class

Die Klasse „QAbstractListModel“ stellt ein abstraktes Modell bereit, von dem Unterklassen abgeleitet werden können, um eindimensionale Listenmodelle zu erstellen. Mehr...

Header: #include <QAbstractListModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Erbt von: QAbstractItemModel
Vererbt an:

QPdfLinkModel, QPdfSearchModel, QStringListModel, QVirtualKeyboardSelectionListModel sowie QWebEngineHistoryModel

Öffentliche Funktionen

QAbstractListModel(QObject *parent = nullptr)
virtual ~QAbstractListModel()

Neu implementierte öffentliche Funktionen

virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override

Ausführliche Beschreibung

QAbstractListModel bietet eine Standardschnittstelle für Modelle, die ihre Daten als einfache, nicht-hierarchische Abfolge von Elementen darstellen. Es wird nicht direkt verwendet, sondern muss unterklassifiziert werden.

Da das Modell eine spezialisiertere Schnittstelle als „ QAbstractItemModel “ bietet, ist es nicht für die Verwendung mit Baumansichten geeignet; Sie müssen „ QAbstractItemModel “ unterklassen, wenn Sie ein Modell für diesen Zweck bereitstellen möchten. Wenn Sie mehrere Listenmodelle zur Verwaltung von Daten verwenden müssen, ist es möglicherweise sinnvoller, stattdessen „ QAbstractTableModel “ zu unterklassen.

Einfache Modelle lassen sich erstellen, indem man diese Klasse untererbt und die Mindestanzahl der erforderlichen Funktionen implementiert. Beispielsweise könnten wir ein einfaches, schreibgeschütztes Modell auf Basis von ` QStringList` implementieren, das einem ` QListView `-Widget eine Liste von Zeichenketten bereitstellt. In einem solchen Fall müssen wir lediglich die Funktion ` rowCount()` implementieren, um die Anzahl der Elemente in der Liste zurückzugeben, sowie die Funktion ` data()`, um Elemente aus der Liste abzurufen.

Da das Modell eine eindimensionale Struktur darstellt, gibt die Funktion „ rowCount()“ die Gesamtanzahl der Elemente im Modell zurück. Die Funktion „ columnCount()“ wird zur Interoperabilität mit allen Arten von Ansichten implementiert, teilt den Ansichten jedoch standardmäßig mit, dass das Modell nur eine Spalte enthält.

Unterklassenbildung

Beim Erstellen einer Unterklasse von `QAbstractListModel` müssen Sie Implementierungen der Funktionen ` rowCount()` und ` data()` bereitstellen. Korrekt funktionierende Modelle stellen zudem eine Implementierung von ` headerData()` bereit.

Wenn Ihr Modell in QML verwendet wird und andere Rollen als die von der Funktion ` roleNames()` standardmäßig bereitgestellten benötigt, müssen Sie diese überschreiben.

Bei bearbeitbaren Listenmodellen müssen Sie zudem eine Implementierung von ` setData()` bereitstellen und die Funktion ` flags()` so implementieren, dass sie einen Wert zurückgibt, der ` Qt::ItemIsEditable` enthält.

Beachten Sie, dass `QAbstractListModel` eine Standardimplementierung von ` columnCount()` bereitstellt, die Ansichten darüber informiert, dass dieses Modell nur eine einzige Spalte mit Elementen enthält.

Modelle, die Schnittstellen zu in der Größe anpassbaren, listenartigen Datenstrukturen bereitstellen, können Implementierungen von ` insertRows()` und ` removeRows()` bereitstellen. Bei der Implementierung dieser Funktionen ist es wichtig, die entsprechenden Funktionen aufzurufen, damit alle verbundenen Ansichten über etwaige Änderungen informiert werden:

Hinweis: Einige allgemeine Richtlinien zur Erstellung von Modellunterklassen finden Sie in der Referenz zur Erstellung von Modellunterklassen.

Siehe auch „Modellklassen“, „Referenz zur Modellunterklassenbildung“, „ QAbstractItemView “, „ QAbstractTableModel “ und „ QRangeModel “.

Dokumentation zu Mitgliedsfunktionen

[explicit] QAbstractListModel::QAbstractListModel(QObject *parent = nullptr)

Erstellt ein abstraktes Listenmodell mit dem angegebenen „ parent “.

[virtual noexcept] QAbstractListModel::~QAbstractListModel()

Löscht das abstrakte Listenmodell.

[override virtual] bool QAbstractListModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

Implementiert: QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

[override virtual] Qt::ItemFlags QAbstractListModel::flags(const QModelIndex &index) const

Implementiert neu: ` QAbstractItemModel::flags(const QModelIndex &index) const`.

[override virtual] QModelIndex QAbstractListModel::index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const

Umsetzung von: ` QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const`.

Gibt den Index der Daten in „ row “ und „ column “ unter Verwendung von „ parent “ zurück.

Siehe auch parent().

[override virtual] QModelIndex QAbstractListModel::sibling(int row, int column, const QModelIndex &idx) const

Implementiert neu: ` QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const`.

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