2016-03-01 49 views
1

为什么使用重量清单模型时,必须在dataindex方法中指定一列?在重量清单模型中索引项目

The WAbstractListModel doc说,“一个抽象列表模型专门为一维列表(即一列没有孩子的模型)提供WAbstractItemModel。”

WAbstractListModel::index原型是index (int row, int column, const WModelIndex &parent=WModelIndex())index (int row, const WModelIndex &parent=WModelIndex())也不合理吗?

WStringListModel::data中发现了相同的情况,其原型为data (int row, int column, int role=DisplayRole, const WModelIndex &parent=WModelIndex())? WStringListModel(或WAbstractListModel的任何实现)提供方法data (int row, int role=DisplayRole, const WModelIndex &parent=WModelIndex())是否合理?

我知道Wt在许多方面都是不完整的。缺乏列表模型的一维API仅仅是不完整的结果?或者是否有一些概念上的理由需要在这里指定列号?

回答

1

Response from Wt developer

WAbstractListModel没有太大增加(除了表达意图)。

项目模型和视图已经在Qt中建模,而 在大多数方面与Qt提供的相同。例如见 http://doc.qt.io/qt-5/qstringlistmodel.html

这Qt的链接显示,无论我的建议是那里执行。

QAbstractListModel::index不要求你指定一个列:

QModelIndex QAbstractListModel::index(int row, int column = 0, const QModelIndex & parent = QModelIndex()) const

而且,QStringListModel::data没有列参数:

QVariant QStringListModel::data(const QModelIndex & index, int role) const

所以,我这个粉化了到“不完整”。