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

QSqlQueryModel返回行数正确但内容为空,重写data()遇递归错误

问题原因分析

1. ListView显示空内容、data()输出None的原因

  • 重写data()方法时,没有正确调用父类的data()方法获取原始数据,或是未针对对应角色返回有效数据。比如你尝试用record(r).value()取数据,但QSqlQueryModel/TableModel的record(row)返回的是临时记录,若未正确绑定索引对应的列或角色,就会返回None;或是你只处理了部分角色,其他场景没有返回父类的结果,导致DisplayRole下无有效数据输出。
  • 另一种情况是你在重写data()时,没先判断index.isValid()就直接取数据,无效索引会直接返回None。
  • 注释data()并设置setModelColumn(1)能正常显示,说明模型本身已正确加载数据,问题完全出在你重写的data()方法逻辑上,没有正确返回对应角色的数据。

2. RecursionError无限递归的原因

  • 这是因为你在重写的data()方法里,错误调用了self.data(index, role)而非父类的super().data(index, role)。每次调用自身的data()都会再次触发方法执行,形成无限递归,直到栈溢出抛出错误。

内容的提问来源于stack exchange,提问作者Iain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:12:40