You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QTreeView删除最后子项时UI崩溃及模型测试报错求助

PySide6 QTreeView 删除最后子项崩溃及模型检测报错排查
  • 在PySide6的QTreeView中删除某一项的最后一个子项时,UI无任何错误提示直接崩溃
  • 已参考Qt论坛方案在index方法中添加校验代码,但问题仍未解决
  • 使用QAbstractItemModelTester检测模型,返回错误:FAIL! flags == Qt::ItemIsDropEnabled || flags == 0 () returned FALSE
  • 制作了最小可复现示例(MRE)但未复现该崩溃问题,以下是实际项目中从数据库构建模型的相关代码,请求协助排查崩溃原因并修复模型报错

模型构建相关代码

setup_model_data 方法

def setup_model_data(self):
    # 从数据库加载根节点数据
    root = self.invisibleRootItem()
    # 递归构建树形结构
    self._recursive_build_tree(root, parent_id=None)

递归构建树形结构方法

def _recursive_build_tree(self, parent_item, parent_id):
    # 查询当前父节点下的子项数据
    query_result = self.db.execute(
        "SELECT id, label, description FROM tree_items WHERE parent_id = ?",
        (parent_id,)
    )
    for row in query_result.fetchall():
        # 创建子项并添加到父节点
        child_item = CustomTreeItem(row)
        parent_item.append_child(child_item)
        # 递归处理子项的子节点
        self._recursive_build_tree(child_item, row["id"])

内容的提问来源于stack exchange,提问作者Thomas.C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:32:06