Tkinter Treeview交替行颜色标签问题:行重复且需单次插入标签
Tkinter Treeview 交替行色无重复行实现方案
你当前的问题是循环中每次执行两次insert,导致每行数据重复插入。要实现交替行色且无重复行,只需在单次插入时根据行的奇偶性选择对应标签即可,修改代码如下:
# 初始化行计数器 row_count = 0 for key, value in dict.items(): # 保留你处理datagrid的原有逻辑 ... # 根据行计数的奇偶性选择标签 current_tag = 'oddrow' if row_count % 2 == 0 else 'evenrow' # 单次插入数据并应用对应标签 my_treeview.insert(parent='', index='end', tags=(current_tag,), values=(datagrid)) # 计数器自增,用于下一行判断 row_count += 1
关键说明:
- 用
row_count跟踪当前插入的是第几行,初始值设为0 - 通过
row_count % 2 == 0判断奇偶:第0、2、4...行用oddrow标签,第1、3、5...行用evenrow标签 - 每次循环只执行一次
insert,彻底避免重复行 tags参数要求是元组格式,所以单个标签要写成(current_tag,)(末尾的逗号不能省略,否则会被识别为字符串而非元组)
内容的提问来源于stack exchange,提问作者aesh
相关产品推荐
相关产品推荐

