QAbstractItemModel插入行疑问:API无法指定列,插入行归属哪一列?
QAbstractItemModel插入行的列归属问题
问题(中文翻译):
QAbstractItemModel的相关文档展示了一个表格(见附图),但其插入行的API——void QAbstractItemModel::beginInsertRows(const QModelIndex &parent, int first, int last)——并未提供指定列的参数,请问插入的行会归属到哪一列?
回答:
beginInsertRows 插入的是完整的一行(或连续多行),并非归属到某一列。
在Qt的模型架构里,行是横向的数据集,一行包含该位置下所有列的条目。调用这个接口时:
- 参数
parent确定插入行所在的父节点(对于表格模型,一般传入空索引QModelIndex()表示根节点,也就是表格的顶层行) first和last指定插入行的范围(插入单行时两者数值一致)
插入完成后,新行的每一列都会对应模型定义的列结构,你需要在beginInsertRows和endInsertRows之间,为新行的每一列填充对应数据,或者在模型的data()方法中处理新行的列数据返回逻辑。
简言之,这个接口是在指定父节点下添加整行,而非某一列的行,因此不需要指定列参数。
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

