tkinter--Treeview数据更新时删除原来的数据,只显示最新的数据
self.tree = ttk.Treeview(self.rightTopFrame) #self.rightTopFrame是treeview的父容器canvas
style = ttk.Style()
MON_FONTSIZE = 14
style.configure('Treeview.Heading', font=(None, MON_FONTSIZE),
rowheight=int(MON_FONTSIZE * 5.2))
style.configure('Treeview', font=(None, MON_FONTSIZE),
rowheight=int(MON_FONTSIZE * 5.2))
self.tree["columns"] = ("姓名", '血量')
self.tree.heading("姓名", text="姓名") # 显示表头
self.tree.heading("血量", text="血量")
self.tree.column("姓名", width=100, anchor="center")
self.tree.column("血量", width=800, anchor="center")
self.tree.tag_configure("mine", foreground="red")
self.tree.tag_configure("others", foreground="blue")
self.tree.tag_configure("finish", foreground="green")
self.tree.place(relx=0.004, rely=0.028, relwidth=0.964, relheight=0.95)
"""
定义滚动条控件
orient为滚动条的方向,vertical--纵向,horizontal--横向
command=self.tree.yview 将滚动条绑定到treeview控件的Y轴
"""
self.VScroll1 = Scrollbar(self.rightTopFrame, orient='vertical', command=self.tree.yview)
self.VScroll1.place(relx=0.971, rely=0.028, relwidth=0.024, relheight=0.958)
# 给treeview添加配置
self.tree.configure(yscrollcommand=self.VScroll1.set)
写入数据:写入之前删除节点即可实现写入的数据永远是最新的。(错误思路:用JS的思维来做,数据改变即新数据产生的时候就去判断treeview是否有节点,有才执行删除,否则不删除)
# 删除原节点
for _ in map(self.tree.delete, self.tree.get_children("")):
pass
index = 0
for item in self.getAttackLog(): # 写入数据
if item.get("type") == 'enemy':
self.tree.insert('', index, values=(item.get("type"), item.get("msg")),
tags="others")
elif item.get("type") == 'finish':
self.tree.insert('', index, values=(item.get("type"), item.get("msg")),
tags="finish")
else:
self.tree.insert('', index, values=(item.get("type"), item.get("msg")),
tags="mine")
index += 1
self.tree.pack(side=tkinter.LEFT, padx=5, pady=20)
本文来自博客园,作者:小虾米吖~,转载请注明原文链接:https://www.cnblogs.com/LindaBlog/p/13931482.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」