索引Wt列表模型中的项目

时间:2016-03-01 12:09:18

标签: c++ model-view-controller model wt

为什么在使用Wt列表模型时必须在dataindex方法中指定一列?

The WAbstractListModel doc说:“抽象列表模型专门用于一维列表的WAbstractItemModel(即具有1列且没有子项的模型)。”

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 个答案:

答案 0 :(得分:1)

Response from Wt developer

  

WAbstractListModel不会增加太多(除了表达意图)。

     

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

该Qt链接显示我的两个建议都在那里实施。

QAbstractListModel::index不要求您指定列:

Principal

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

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

所以,我将这归结为“不完整”。