【发布时间】:2020-08-05 22:53:54
【问题描述】:
我正在尝试使用标签和 tag_configure 为 tkinter 树视图对象中的行设置颜色。
之前有一个关于着色行的讨论,它相当古老,似乎不再适用于 Python3:
ttk treeview: alternate row colors
我添加了一个简短的示例。对我来说,所有行都保持白色,与我在插入命令之前还是之后执行 tag_configure 无关。
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
w = tk.Label(root, text="Hello, world!")
w.pack()
lb= ttk.Treeview(root, columns=['number', 'text'], show="headings", height =20)
lb.tag_configure('gr', background='green')
lb.column("number", anchor="center", width=10)
lb.insert('',tk.END, values = ["1","testtext1"], tags=('gr',))
lb.insert('',tk.END, values = ["2","testtext2"])
lb.pack()
root.mainloop()
发生了什么变化或我缺少什么?
编辑: 似乎这是一个带有解决方法的新已知错误,但我没有得到这个工作: https://core.tcl-lang.org/tk/tktview?name=509cafafae
EDIT2: 我现在使用 tk 版本 8.6.10(构建 hfa6e2cd_0,通道 conda-forge)和 python 3.7.3。谁能用这个版本的python和tk重现这个错误?
【问题讨论】:
-
我已经执行了你的代码——它可以工作。你的 Tkinter 版本是什么? (要检查它,请在交互模式下输入
from tkinter import TkVersion; TkVersion,但不要在实际代码中使用 ;) -
Tkinter 版本是 8.6,python 版本是 3.7.3
-
no longer for Python3-- 这是一个绝对错误的句子,因为 Tk 版本独立于 Python 版本(当然有默认安装的 Tk 版本) -
对了,你有没有试过设置Treeview的样式?我的意思是,`lb = ttk.Treeview(root, ...., style="Treeview")
-
@DemianWolf 我已尝试实现该解决方法的代码,但没有使此样式命令正常工作。如果我只是将 style=Treeview" 添加到 ttk.Treeview 命令,它不起作用。
标签: python tkinter treeview ttk