Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改树视图的背景色_Python_Python 3.x_Tkinter - Fatal编程技术网

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