Python 如何更改树视图的背景色
我来这里是想问你如何改变树视图的背景,我试过了Python 如何更改树视图的背景色,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我来这里是想问你如何改变树视图的背景,我试过了 ttk.Style().configure("Treeview", background="#383838") 这对牢房来说很有效,但树景的其余部分保持白色 我试图改变窗口的背景,也改变了框架,但不起作用 那么,如何做到这一点,我相信你知道 再见,提前感谢:) 代码 from tkinter import * from tkinter import ttk p=Tk() separator = PanedWindow(p,bd=0,bg="#
ttk.Style().configure("Treeview", background="#383838")
这对牢房来说很有效,但树景的其余部分保持白色
我试图改变窗口的背景,也改变了框架,但不起作用
那么,如何做到这一点,我相信你知道
再见,提前感谢:)
代码
from tkinter import *
from tkinter import ttk
p=Tk()
separator = PanedWindow(p,bd=0,bg="#202322",sashwidth=2)
separator.pack(fill=BOTH, expand=1)
_frame = Frame(p,bg="#383838")
t=ttk.Treeview(_frame)
t["columns"]=("first","second")
t.column("first",anchor="center" )
t.column("second")
t.heading("first",text="first column")
t.heading("second",text="second column")
t.insert("",0,"dir1",text="directory 1")
t.insert("dir1","end","dir 1",text="file 1 1",values=("file 1 A","file 1 B"))
id=t.insert("","end","dir2",text="directory 2")
t.insert("dir2","end",text="dir 2",values=("file 2 A","file 2 B"))
t.insert(id,"end",text="dir 3",values=("val 1 ","val 2"))
t.insert("",0,text="first line",values=("first line 1","first line 2"))
t.tag_configure("ttk",foreground="black")
ysb = ttk.Scrollbar(orient=VERTICAL, command= t.yview)
xsb = ttk.Scrollbar(orient=HORIZONTAL, command= t.xview)
t['yscroll'] = ysb.set
t['xscroll'] = xsb.set
ttk.Style().configure("Treeview", background="#383838",foreground="white")
p.configure(background='black')
t.grid(in_=_frame, row=0, column=0, sticky=NSEW)
ysb.grid(in_=_frame, row=0, column=1, sticky=NS)
xsb.grid(in_=_frame, row=1, column=0, sticky=EW)
_frame.rowconfigure(0, weight=1)
_frame.columnconfigure(0, weight=1)
separator.add(_frame)
w = Text(separator)
separator.add(w)
p.mainloop()
缺少的选项是我偶然发现的
fieldbackground
。因此,如果将其添加到样式声明中
ttk.Style().configure("Treeview", background="#383838",
foreground="white", fieldbackground="red")
这是你想要的。我使用了
red
使更改非常可见;显然,你会想改变它,以获得更大的色彩和谐。你说“我试图改变窗口的背景,也改变了框架,但不起作用”。向我们展示代码,以便我们能够帮助您。是的,对不起,“样式代码”:_frame=frame(p,bg=“#383838”)p.configure(background='black')谢谢您的回答,但这不起作用:正如您所看到的,它仍然是白色的,此外,我看不出有没有区别“现场背景”,很奇怪:(为什么不起作用?我想更改树状图开头和水平滚动条之间的白色背景。很抱歉,我帮不了你。我在安装时用你的代码测试了它,它是红色的。不知道。所以,问题是由python引起的?任何人都可以测试这段代码,并告诉我他是否有效?我使用python的最新版本(3.3.2),我在Windows 8上运行。它在Windows 7上也不工作。您的版本是什么?我在Linux上的纯Python 3.3.1上进行了测试。它在Windows下不工作,我并不感到非常惊讶,因为Tkinter是一个相对较旧的模块,可能没有在辅助平台上对一个模糊功能进行过太多测试。tk
是当时唯一的游戏n它的引入及其设计原则启发了Qt、GTK等。如果您刚刚开始一个没有tkinter遗留附件的项目,我建议您使用Qt(尽管这让我有点难过)。如果这是用于商业用途,请注意tkinter和Qt有不同的许可证(分别是BSD和LGPL);我没有资格解释这些差异。这个答案的背景是什么?这是OP问题的解决方案吗?
if flag == False:
tree.insert('', 'end', values=(valx[0], valx[1], valx[2], valx[3]),tags=('odd',))
else:
tree.insert('', 'end', values=(valx[0], valx[1], valx[2], valx[3]),tags=('even',))
tree.tag_configure('odd', background='#008001')
tree.tag_configure('even', background='#FFFF00')