2013-08-04 44 views
6

Tôi ở đây để yêu cầu bạn làm thế nào để thay đổi nền của một TreeView, tôi đã cố gắng màLàm thế nào để thay đổi màu nền của một Treeview

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

Đó là công việc một cách hoàn hảo chỉ dành cho di động, nhưng phần còn lại của Treeview vẫn trắng.

Tôi đã cố gắng thay đổi nền của cửa sổ, khung quá, nhưng nó không hoạt động.

Vì vậy, cách thực hiện điều đó, tôi chắc chắn rằng bạn biết.

Bye và cảm ơn trước :)

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

Bạn nói "Tôi đã cố gắng thay đổi nền của cửa sổ, khung quá, nhưng nó không hoạt động". Hiển thị mã cho chúng tôi để chúng tôi có thể giúp bạn. – msw

+1

Có lỗi, "mã kiểu dáng": _frame = Khung (p, bg = "# 383838") p.configure (nền = 'đen') – user2650746

Trả lời

3

Tùy chọn thiếu là fieldbackground mà tôi chỉ tìm thấy một cách tình cờ in an example. Vì vậy, nếu bạn thêm nó vào kiểu khai báo

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

nó hoạt động như bạn muốn. Tôi đã sử dụng red để thực hiện thay đổi rất rõ ràng; rõ ràng bạn sẽ muốn thay đổi điều đó để có sự hài hòa màu sắc tuyệt vời hơn.

+0

Cảm ơn bạn đã trả lời nhưng điều đó không hiệu quả: http: // image.noelshack.com/fichiers/2013/32/1375729684-capture.png Như bạn thấy, nó vẫn còn màu trắng, ngoài ra tôi thấy không có sự khác biệt có hoặc không có "fieldbackground". Thật lạ lùng: (Tại sao điều đó không hiệu quả? Chính xác là tôi muốn thay đổi nền trắng giữa phần bắt đầu của chế độ xem dạng cây và thanh cuộn ngang. – user2650746

+0

Xin lỗi, tôi không thể giúp bạn. Tôi đã thử nghiệm nó bằng mã của bạn trên cài đặt của tôi và nó là màu đỏ như màu đỏ được Dunno – msw

+0

Vì vậy, vấn đề là do python? Bất cứ ai có thể kiểm tra mã này, và nói với tôi nếu anh ta làm việc? Tôi sử dụng phiên bản cuối cùng của python (3.3.2), và tôi chạy trên Windows 8. Nó cũng không hoạt động trên Windows 7. Phiên bản của bạn là gì? – user2650746

Các vấn đề liên quan