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

如何在Qt中实现指定列可编辑的部分可编辑树模型

Qt可编辑树视图指定列可编辑实现方案

核心修改逻辑

你只需要修改TreeModel类的flags方法,通过index.column()获取当前单元格的列索引,按列动态控制是否添加Qt.ItemIsEditable标志即可。

完整修改后代码

def flags(self, index):
    if not index.isValid():
        return 0
    
    base_flags = super(TreeModel, self).flags(index)
    # 第一列(索引0,对应Title列)不添加可编辑标志,默认支持选中
    if index.column() == 0:
        return base_flags
    # 第二列(索引1,对应Description列)添加可编辑标志
    elif index.column() == 1:
        return base_flags | Qt.ItemIsEditable
    # 更多列可在此扩展规则
    return base_flags

实现说明

  • 父类返回的base_flags默认已经包含Qt.ItemIsEnabled(条目可用)、Qt.ItemIsSelectable(条目可选中)属性,因此第一列无需额外加标志,就能满足「仅可选中、不可编辑」的需求
  • 仅给第二列额外拼接Qt.ItemIsEditable标志,即可实现第二列可编辑的效果

效果示意图

实现效果示意图:第一列Title仅可选中,第二列Description可编辑

内容的提问来源于stack exchange,提问作者João Ramiro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:15:02