Qt QTreeView根节点下不显示数据(Thinkvd开发日志)

在Qt QTreeView中,当尝试将一个记录B(包含子记录B1、B2)COPY到另一个记录A下作为子节点时,记录B及其子节点无法正常显示。问题出现在使用`insertChildren`方法添加数据时,没有调用`beginInsertRows`和`endInsertRows`。在更改代码,调用`addItem`方法并正确使用`beginInsertRows`后,问题得到解决。
摘要由CSDN通过智能技术生成



现象描述:当在Clip后返回主界面时,Clip后的记录B会从当前的记录A COPY一份,并在记录B下生成子记录B1、B2。关系如下:
A
B
|--B1
|--B2
此时记录B的子节点与B一块显示不出来,若B1,B2直接为记录A的子节点是没有问题,其记录B新增加的方式与已经存在增加addProfile类似。测试若把B当成A的子记录,如下关系:
A
|--B
  |--B1
  |--B2
这时显示没有问题。

简化代码:
//itemData 相当于B
//item 相当于A, A,B为兄弟节点

itemData = new ImListTreeItem(item);
*itemData = *item;  //COPY data

QModelIndex idx = model()->getItemIndex(item);
//得到当前记录的parent, itemData与item的parent相同
ImListTreeItem *parentItem = model()->getItem(idx.parent());     //由索引找到parent记录
parentItem->insertChildren(parentItem->childCount(), itemData);  //添加itemData为parentItem子记录

这时在model中的data()跟踪无 itemData对应的index

现在改为&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值