tkinter中treeview隔行显示不同的颜色
隔行显示不同颜色的代码,这个牵涉到背景颜色,在3.8版的tkinter,要加多一些代码,才能让背景颜色起作用。
这段要多加的代码就是:
1 2 3 4 5 6 | def fixed_map(option): return [elm for elm in style. map ( 'Treeview' ,query_opt = option) if elm[: 2 ]! = ( '!disabled' , '!selected' )] style = Style() style. map ( 'Treeview' ,foreground = fixed_map( 'foreground' ),background = fixed_map( 'background' )) |
以下是全部代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | from tkinter import * from tkinter.ttk import * def tree_color(): # 表格栏隔行显示不同颜色函数 items = tree1.get_children() # 得到根目录所有行的iid i = 0 # 初值 for hiid in items: if i / 2 ! = int (i / 2 ): # 判断奇偶 tag1 = '' # 奇数行 else : tag1 = 'even' # 偶数行 tree1.item(hiid,tag = tag1) # 偶数行设为浅蓝色的tag='even' i + = 1 # 累加1 root = Tk() # 源码来自wb98.com img1 = PhotoImage( file = '16-1.png' ) img2 = PhotoImage( file = '16-2.png' ) tree1 = Treeview(root, columns = ( 'qy' , 'dz' )) # 创建树表格组件,栏目有3个:#0, qy, dz tree1.column( '#0' , width = 120 , anchor = CENTER) tree1.column( 'qy' , width = 90 , anchor = CENTER) tree1.column( 'dz' , width = 180 , anchor = CENTER) # 定义3个栏目的宽度,对齐方法,宽度是否窗体变化 tree1.heading( '#0' , text = '') tree1.heading( 'qy' , text = '区域' ) tree1.heading( 'dz' , text = '地址' ) # 定义3个栏目的表头文字 tree1.insert(' ', END, text=' 广州市 ',values=(' 海珠区 ',' 阅江中路 380 号')) tree1.insert(' ', END, text=' 深圳市 ',values=(' 南山区 ',' 华侨城侨香路 11 号')) tree1.insert(' ', END, text=' 东莞市 ',values=(' 南城区 ',' 元美东路 3 号济亨网')) tree1.insert(' ', END, text=' 长沙市 ',values=(' 雨花区 ',' 韶山中路 108 号')) tree1.insert(' ', END, text=' 湘潭市 ',values=(' 岳塘区 ',' 书院路 42 号云峰工作室')) tree1.insert(' ', END, text=' 衡阳市 ',values=(' 蒸湘区 ',' 祝融路名都花园B9栋 107 室')) tree1.insert(' ', END, text=' 长沙市 ',values=(' 岳麓区 ',' 梅溪湖路复兴小区 709 号')) tree1.insert(' ', END, text=' 广州市 ',values=(' 白云区 ',' 下塘西路 545 号')) tree1.pack(fill = BOTH,expand = True ) # 3.8版要多加的代码------------ def fixed_map(option): return [elm for elm in style. map ( "Treeview" , query_opt = option) if elm[: 2 ] ! = ( "!disabled" , "!selected" )] style = Style() style. map ( "Treeview" , foreground = fixed_map( "foreground" ), background = fixed_map( "background" )) # 3.8版要多加的代码------------ #定义背景色风格 tree1.tag_configure( 'even' , background = 'lightblue' ) # even标签设定为浅蓝色背景颜色 tree_color() # 启动程序,根据奇偶行设为不同的背景颜色 root.mainloop() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2016-03-16 Axure RP Extension for Chrome