class QAbstractListModel#

QAbstractListModel 类提供了一个抽象模型,可以被子类化以创建一维列表模型。 更多

Inheritance diagram of PySide6.QtCore.QAbstractListModel

继承自: QWebEngineHistoryModelQPdfSearchModelQPdfLinkModelQStringListModelQHelpIndexModel

概述#

方法#

注意

此文档可能包含自动从C++转换为Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述#

QAbstractListModel 提供了一个标准接口,用于表示数据作为一个简单的非线性序列项的模型。它不能直接使用,但必须进行子类化。

由于该模型提供了比 QAbstractItemModel 更专业的接口,因此不适合与树视图使用;如果您想要为此目的提供一个模型,则需要子类化 QAbstractItemModel。如果您需要使用多个列表模型来管理数据,那么可能会更适合子类化 QAbstractTableModel

可以通过子类化此类并实现所需的最小功能数来创建简单的模型。例如,我们可以实现一个基于 QStringList 的简单只读模型,该模型向 QListView 小部件提供字符串列表。在这种情况下,我们只需要实现 rowCount() 函数以返回列表中的项数,以及 data() 函数从列表中检索项。

由于模型表示一维结构,rowCount() 函数返回模型中的总项数。函数 columnCount() 为与所有类型的视图进行互操作而实现,但默认情况下会通知视图模型只包含一个列。

子类化

当子类化 QAbstractListModel 时,您必须提供 rowCount()data() 函数的实施。表现良好的模型还提供了一个 headerData() 实现。

如果您的模型用于 QML 并且需要 roleNames() 函数之外的其他角色,您必须对其进行覆盖。

对于可编辑列表模型,您还必须提供一个 setData() 的实现,并实现 flags() 函数,使其返回包含 ItemIsEditable 的值。

请注意,QAbstractListModel 提供了一个默认的 columnCount() 实现,该实现在视图方面表示此模型中只有单列条目。

提供可调整大小的类似列表数据结构接口的模型可以提供 insertRows()removeRows() 的实现。在实现这些函数时,调用适当的函数非常重要,以确保所有连接的视图都可以感知到任何更改

注意

模型子类化的一般指南可参见模型子类化参考。

另请参阅

QAbstractTableModel

__init__([parent=None])#
参数:

parent - QObject

使用给定的 parent 构造一个抽象列表模型。