为了写个小工具,需要在表格中实现隔行变背景色,在网上转了好久,给出的代码完全不能实现,还好最终还是给找到了一篇相关的文章,但写得也比较隐晦,我在这里就给大家分享一下吧!
网上给的代码普遍是:
tree.insert('', 'end', text='我会变彩色的' , values=('', '0'),tag='even')
tree.tag_configure('even', background='orange',foreground='red',font=('',14))
但我换了多种方式均不成功,字体倒是能变大,但字色、背景色均不起作用。
最后才查到,在Python 3.7、3.8版中不能直接用,算是小BUG
需要在前面先定义几行代码,不费话,直接上代码
#需要事先定义的代码
def fixed_map(option):
return [elm for elm in style.map("Treeview", query_opt=option) if elm[:2] != ("!disabled", "!selected")]
style = ttk.Style()
style.map("Treeview", foreground=fixed_map("foreground"), background=fixed_map("background"))
#定义背景色风格
tree.tag_configure('even', background='orange',foreground='red')
def tree_interlacedStyle():#表格交错风格设定【表格变化时也可作刷新用】
items=tree.get_children()
i=0
for item in items:
if i/2!=int(i/2):
tag='' # odd 奇数
else:
tag='even' #偶数
tree.item(item,tag=tag)
i+=1
久违的颜色终于出现!!!!