为 Wt 列表模型中的项目编制索引
Indexing items in a Wt List Model
为什么在使用 Wt 列表模型时必须在 data
和 index
方法中指定一列?
WAbstractListModel 文档说:"抽象列表模型专门用于一维列表(即具有 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 仅仅是这种不完整的结果吗? 还是有一些概念上的原因要求在此处指定列号?
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::d ata 没有列参数:
QVariant QStringListModel::data(const QModelIndex & index, int role) const
所以,我把它归结为"不完整"。
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- 数组索引的值没有增加
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何摆脱导入的 make 项目中的 Eclipse 索引器"Type std::... could not be resolved"错误
- 在矢量中使用擦除时双重释放或损坏(快速顶部).如何擦除一个矢量的几个项目知道它们的索引?
- 有没有一种简单的方法可以在C++中获取特定索引之后向量中的所有项目?
- 从 boost::variant 中逐个索引获取项目,就像使用 std::variant 一样
- 无法从矢量中按索引擦除项目C++
- 使用 Cmake 的 Eclipse IDE 项目中的索引 Qt5
- 如何在C 中以给定索引列表中的项目插入项目
- 如何从QTreeView中的项目获取索引
- Eclipse (Juno) CDT 索引器:"Error while parsing..." Makefile 项目
- 如何返回文件中项目的索引.dat
- 为 Wt 列表模型中的项目编制索引
- 与排序相关的算法(将每个项目替换为排序排序中的索引)
- Qt:如何在任意索引(不是当前选定的项目)处获取QComboBox项目文本
- 对于大型C++项目,建议的 Eclipse CDT 配置是什么(索引器需要很长时间)
- 为c++项目的字符串文字编制索引