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

Qt6:如何禁用QTreeView项的默认背景绘制

Qt 6.5后项背景渲染行为变更的问题与解决思路

问题背景

  • Qt 6.5版本之前,只有在指定交替项背景时才会渲染项背景,QStyledItemDelegate可独立完成背景渲染。
  • 提交qt/qtbase@16e0e7c修改了这一原有逻辑,引发回归问题。
  • 补充:另一提交qt/qtbase@483ae6c同样导致该问题——它将PanelItemViewRow替换为PanelItemViewItem来「正确」渲染背景,理由是前者无法通过QSS设置样式,但官方并未选择在QSS中新增类似::row的语法来实现,这一点令人困惑。

已尝试的方案及局限

  • 方案1:通过QProxyStyle重写PE_PanelItemViewRow,但该方案与应用程序必须兼容的自定义样式表(QSS)冲突。
  • 方案2:计划在QSS中设置::item无背景,再由QStyledItemDelegate负责渲染背景,但目前尚未找到能通过QSS控制该行为的可行实现方式。

效果对比

错误渲染效果

错误效果

预期渲染效果

预期效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:18:11