PyQt5 和 QAbstractListModel::columnCount

PyQt5 and QAbstractListModel::columnCount

QTreeView 忽略从 QAbstractListModel 继承的 class 的 columnCount() 并且只显示第一列:

import sys
from PyQt5.QtCore import QAbstractListModel
from PyQt5.QtWidgets import QApplication, QTreeView

class Model(QAbstractListModel):
    def columnCount(self, parent):
        return 3

    def data(self, index, role):
        return None

    def rowCount(self, parent):
        return 0

app = QApplication(sys.argv)

model = Model()
list_view = QTreeView()
list_view.setModel(model)
list_view.show()

app.exec_()

相关的 C++ 代码工作正常。

我做错了什么?

来自 Qt 文档:

The QAbstractListModel class provides an abstract model that can be subclassed to create one-dimensional list models. [emphasis added]

但是您显然想要一个二维模型,所以请改用QAbstractItemModel