2013-08-04 4 views
6

Я здесь, чтобы спросить, как изменить фон в TreeView, я пытался чтоКак изменить цвет фона Treeview

ttk.Style().configure("Treeview", background="#383838") 

Это работа отлично только для ячейки, а остальная часть Treeview остается белым.

Я попытался изменить фон окна, рамки тоже, но он не работает.

Итак, как это сделать, я уверен, что вы знаете.

Bye и заранее спасибо :)

Код

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

Вы сказали: «Я попытался изменить фон окна, фрейм тоже, но он не работает». Покажите нам код, чтобы мы могли помочь вам. – msw

+1

Да, извините, «код стиля»: _frame = Frame (p, bg = "# 383838") p.configure (background = 'black') – user2650746

ответ

3

Пропавший вариант fieldbackground который я нашел только случайно in an example. Поэтому, если вы добавите его в декларацию стиля

ttk.Style().configure("Treeview", background="#383838", 
foreground="white", fieldbackground="red") 

это работает так, как вам хотелось бы. Я использовал red, чтобы сделать изменение очень заметным; очевидно, вы захотите изменить это для большей гармонии цвета.

+0

Спасибо за ваш ответ, но это не работает: http: // image.noelshack.com/fichiers/2013/32/1375729684-capture.png Как вы можете видеть, он все еще белый, кроме того, я не вижу разницы с или без «fieldbackground». Это странно :(Почему это не работает? Я точно хочу, чтобы я изменил белый фон между началом древовидной структуры и горизонтальной полосой прокрутки. – user2650746

+0

Извините, что не могу вам помочь. Я проверил его с вашим кодом на моей установке, и он был красным, как красный. Dunno – msw

+0

Итак, проблема вызвана python? Кто-нибудь может проверить этот код и сказать мне, если он работает? Я использую последнюю версию python (3.3.2) и я работаю в Windows 8. Он тоже не работает на Windows 7. Какая у вас версия? – user2650746

Смежные вопросы