Tkinter Treeview tag_configure失效问题
Tkinter Treeview tag_configure失效问题
最近在交付一个带界面的工具软件时出现了一点问题,把源码拿到测试机上编译时发现界面中的Treeview不带颜色,在我自己的开发环境是正常的。在分析一通之后,发现测试机的python是3.8,而我的是3.6,考虑是版本问题。
等效源码如下:
import tkinter
from tkinter import ttk #导入内部包win = tkinter.Tk()
win.geometry("400x350")tree = ttk.Treeview(win)
tree.tag_configure('FAIL', background='red', foreground="white")
tree['show'] = 'headings'
tree["columns"] = ("id", "name")
tree.column("id", width=75) # 表示列,不显示
tree.column("name", width=150)
# 表头设置
tree.heading("id", text="ID")
tree.heading("name", text="姓名")
# 插入数据
tree.insert("", "end", values=("135", "张三"),tags="FAIL")
tree.grid(row=3, column=0, columnspan=1, sticky="NSEW")
tree.pack()
win.mainloop()
在python3.7.3+环境中,运行结果如下:
可以看到代码中对tag=FAIL的数据项应该标记为红色,但运行结果却显示该设置并没有生效。
解决办法
添加如下代码:
def fixed_map(option):# Returns the style map for 'option' with any styles starting with# ("!disabled", "!selected", ...) filtered out# style.map() returns an empty list for missing options, so this should# be future-safereturn [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"))
全部代码:
import tkinter
from tkinter import ttk #导入内部包win = tkinter.Tk()
win.geometry("400x350")def fixed_map(option):# Returns the style map for 'option' with any styles starting with# ("!disabled", "!selected", ...) filtered out# style.map() returns an empty list for missing options, so this should# be future-safereturn [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 = ttk.Treeview(win)
tree.tag_configure('FAIL', background='red', foreground="white")
tree['show'] = 'headings'
tree["columns"] = ("id", "name")
tree.column("id", width=75) # 表示列,不显示
tree.column("name", width=150)
# 表头设置
tree.heading("id", text="ID")
tree.heading("name", text="姓名")
# 插入数据
tree.insert("", "end", values=("135", "张三"),tags="FAIL")
tree.grid(row=3, column=0, columnspan=1, sticky="NSEW")tree.pack()
win.mainloop()
运行结果:
原因分析
写在后面:好久没更新了,感觉这些积累很没有意义。
Tkinter Treeview tag_configure失效问题相关推荐
- Tkinter Treeview Color Bug
百度一大堆Tkinter多简单多好用,尝试利用Treeview显示测试结果,期望在错误结果的条目上显示红色,正确的结果条目显示绿色,然而发现想要设置Treeview Item的背景色时,居然无法实现, ...
- python tkinter treeview制作_python-3.x – Tkinter Treeview标题样式
我想更改树视图标题的背景颜色.我已经确定了Treeview.Heading布局的元素选项,负责这个:Treeheading.cell.问题是这个设置不适用于'vista'主题(由于我假设的绘图问题). ...
- 【Tkinter TreeView】
目录 一.前言 二.TreeView的引入 三.TreeView的属性 四.TreeView的item选项 五.列标识符 六.TreeView触发事件 七.TreeView点击事件 八.TreeVie ...
- python 显示数据库数据tk_如何使用python显示从Mysql表获取的Tkinter treeview中的数据...
我已经用treeview创建了一个表,我想插入从mysql表中获取的数据.如果有人能帮助我,因为我已经尽了最大的努力,但仍然没有成功.使用这个语句tree.insert("", 1 ...
- python tkinter treeview 高亮_满满的成就感~如何用python让你的想法拥有可操作性?(一)...
想法:用python+tkinter+pypyodbc+xlrd+xlwt实现从已有数据库调取你想要的数据,生成EXCEL.xls文件. 生活处处有Idea 一.需求分析. 完成的界面如下图,左上方通 ...
- python tkinter treeview_Python tkinter treeview列大小
我在tkinter中有一个Treeview(在Linux上是python3.6,但在windows上也是如此),我用它来模拟一种电子表格布局.我的问题是,如果我运行下面的示例代码并调整大小,比如&qu ...
- Python+tkinter+Treeview模拟表格并设置字体和颜色
清华大学出版社-第10届高等学校计算机程序设计课程论坛 中国大学MOOC"Python程序设计基础"免费学习地址 2020年秋季学期Python教材推荐与选用参考 推荐图书: &l ...
- python窗口显示表格_Python tkinter Treeview创建GUI表格(可编辑、新建单元格)
版本:Python3.7 1.使用Treeview创建表格界面 from tkinter import ttk from tkinter import * root = Tk() # 初始框的声明 c ...
- tkinter treeview加入滚动条
import tkinter as tk from tkinter import ttkclass Test:def __init__(self,w1):self.w1 = w1self.w1.con ...
最新文章
- 树莓派避障小车(python)
- 我是怎么提高单片机编程能力的?
- 第04课:深度学习框架 PyTorch
- 游戏行业的人工智能设计:AI的设计和实施
- [原]好玩的Linux,关于时间cal命令
- 操作系统(二): 进程与线程
- HTML/CSS水平垂直居中方法(待补充)
- 2017.9.10 ricehub 思考记录
- java模拟网银登录_Java模拟网上银行业务
- 【5G核心网】 GTP协议
- 委托、事件 茴字有几种写法
- Android系统的system/app和system/priv-app
- 青柠开车Spring Cloud(三) —— Spring cloud Eureka
- 傻子,疯子,一根筋的人才能创业成功!
- python输入数据带单位_python – Pandas用单位插入数据
- winform listbox控件简单使用。
- JS 内存泄漏与垃圾回收机制
- 在 Adob​​e MAX 深入研究 UI/UX 设计
- Hibernater由于外键设置不为空,导致在主键级联删除时失败解决办法!
- 微信小程序 错题记事本 111111