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

如何在Python Tkinter中获取TreeView指定列的最后一项?

解决Tkinter TreeView获取指定列最后一项数值的问题

错误原因分析

你遇到的TypeError: 'int' object is not subscriptable是因为代码中OUT_DC_Level_data_table.item(child)['values'][1]已经是单个数值(比如整数类型),却试图用[-1]对其进行下标访问——整数不支持下标操作,所以报错。

另外你的循环逻辑存在问题:遍历所有子项时反复覆盖变量,最终只能得到最后一个子项的值,但写法完全错误。

正确实现方法

要获取指定列的最后一项,不需要遍历所有子项,直接取最后一个子项的对应列即可:

# 获取所有子项ID的列表
all_children = OUT_DC_Level_data_table.get_children()

if all_children:  # 确保TreeView不为空
    # 取最后一个子项的ID
    last_child = all_children[-1]
    # 获取该子项的所有列值
    last_item_values = OUT_DC_Level_data_table.item(last_child)['values']
    
    # 假设frozen对应列索引1,chill对应2,dry对应3(根据你的实际列顺序调整)
    get_latest_value_OUT_DC_level_frozen = int(last_item_values[1])
    get_latest_value_OUT_DC_level_chill = int(last_item_values[2])
    get_latest_value_OUT_DC_level_dry = int(last_item_values[3])
    
    # 后续计算示例
    result = get_latest_value_OUT_DC_level_frozen * 30
    print(result)
else:
    print("TreeView中没有数据")

关键说明

  • get_children()返回TreeView所有子项的ID列表,[-1]直接取最后一个子项
  • item(last_child)['values']返回该子项所有列的数值列表,按列顺序索引(从0开始)
  • 确保列对应的值是可转为整数的字符串/数值,否则需要额外的异常处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:32:10