Qt TreeView 问题记录

本文记录了一次在使用Qt TreeView时遇到的问题:无法正确判断rootIndex()下子节点的展开状态。原因是rootIndex可能无效,导致child()方法返回的QModelIndex无效。解决方法是通过createIndex()结合自定义的TreeItem维护父子节点关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:记一次Qt TreeView 获取一个rootIndex()下的子节点的QModelIndex()时遇到的问题


问题描述:

在查找如下的树形结构根节点下的子节点的QModelIndex()时使用QTreeview的child(int arow, int acolumn)方法,然后想根据此节点的QModelIndex()使用isexpanded()方法来判断指定节点是否是展开的,这时候问题出现了,指定的节点是展开的,但使用isexpanded() 却判断为false.

(图片仅供参考)


原因分析:

首先查看QT官方文档对rootIndex的描述

注意The root can be invalid 这句话,上述有多个并列的兄弟节点的情况下,根节点并不是显式的,这里的根节点就是invalid的,虽然记录了与子节点的关系,但是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值