首页 > 其他分享 >tkinter中treeview隔行显示不同的颜色

tkinter中treeview隔行显示不同的颜色

时间:2023-03-16 14:55:53浏览次数:34  
标签:map tkinter insert text tree1 隔行 values END treeview

隔行显示不同颜色的代码,这个牵涉到背景颜色,在3.8版的tkinter,要加多一些代码,才能让背景颜色起作用。

这段要多加的代码就是:

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'))

  以下是全部代码:

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()

  

标签:map,tkinter,insert,text,tree1,隔行,values,END,treeview
From: https://www.cnblogs.com/hushaojun/p/17222573.html

相关文章

  • 如何隐藏、恢复和删除 Tkinter 控件
    在本文中,我们将介绍如何通过单击按钮来隐藏,恢复Tkinter控件。最后,我们还将向你展示如何删除或杀死现有的Tkinter控件。隐藏和恢复Tkinter控件pack_forget()隐藏T......
  • WPF TreeView 样式
    一、前言TreeView控件在项目中使用比较频繁,普通的TreeView并不能满足我们的需求。因此我们需要滴对TreeView进行改造。下面的内容将介绍仿QQ联系人TreeView样式及TreeView......
  • 【项目实战】基于Python+Tkinter+MySQL的GUI简易酒店管理系统(附完整源码)
    1、项目说明基于python+Tkinter+MySQL的简易酒店管理系统项目实战项目需要安装pycharm社区版或专业版都可,MySQL以及项目所需的所有模块项目需要安装tkinter、pymysql......
  • 【项目实战】基于Python+Tkinter的GUI信息管理系统(附完整源码)
    1、项目说明基于python+Tkinter的gui信息管理系统项目实战项目需要安装pycharm社区版或专业版都可,以及项目所需的所有模块项目需要安装tkinter以及其他的一些模块安装......
  • 基于Python+Tkinter的gui信息管理系统
    基于Python+Tkinter的gui信息管理系统1、项目说明2、项目主要技术python编程技术flask框架技术mysql数据库技术html编程css编程js编程3、项目结构4、项目主要......
  • Tkinter实现模糊查询
    importtkinterastkclassTest(): def__init__(self): self.root=tk.Tk() self.entry_value=tk.StringVar() self.entry1=tk.Entry(self.root,textv......
  • echarts,x轴避免隔行显示,x轴文字换行
    getChartOption(){letechart=this.$echarts;letfontSize=this.excutePx(14);letbarWidth=this.excutePx(30);......
  • Tkinter使用教程记录
    简介Tkinter是Python的标准GUI库。Python使用Tkinter可以快速地创建GUI应用程序。当然常用的GUI库还有PyQt5,我们只需要知道这两个常用的即可,如果你真的想学习的话。由......
  • Delphi:利用TreeView 的data属性存储相关数据
    Delphi:利用TreeView的data属性存储相关数据TreeView利用data属性存储相关数据在Delphi中,TreeView控件是一款很出色而且很常用的控件。在使用过程中,了解到其TTreeNod......
  • 【tkinter】把tkinter滚动条加到text中
    一开始不知道怎么弄,教程都是直接加到tk主窗口中的,后来发现直接用带滚动条的文本框ScrolledText就行了真香!首先导入对应的包fromtkinter.scrolledtextimportScrolledText......