我正試圖改變其中一個樹狀部件標題的背景顏色。然而,它對兩個樹狀圖部件都有變化。我希望 "Tree2 "標題有不同的背景,而 "Tree1 "則沒有任何顏色。我做錯了什么呢? 下面是我的代碼。
環境。Windows 10 19043.1165 Python 3.9.6
import tkinter as objTK
from tkinter import ttk as objTTK
#創建視窗
objWindow = objTK.Tk()
#初始化變數
arrHdr = ["Hdr1"/span>, "Hdr2"/span>]
arrData = ["Test1"/span>, "Test2"]
# ------------ Treeview 1]
fFrame1 = objTK.LabelFrame(objWindow, text="Tree 1")
treeView1 = objTTK.Treeview(columns=arrHdr, show="標題")
treeView1.grid( column=0, row=0, sticky="nsew", in_=fFrame1)
fFrame1.grid_columnconfigure(0, weight=1)
fFrame1.grid_rowconfigure(0,weight=1)
treeView1.heading(0, text="Hd1"/span>)
treeView1. heading(1, text="Hd2")
treeView1.insert("", "end", values=arrData)
fFrame1.pack()
# ------------ Treeview 2
fFrame2 = objTK.LabelFrame(objWindow, text="樹2")
treeView2 = objTTK.Treeview(columns=arrHdr, show="標題")
objStyle = objTTK.Style(treeView2)
objStyle.theme_use("clam")
objStyle.configure("Treeview.Heading", background="#c3c3c3")
treeView2.grid( column=0, row=0, sticky="nsew", in_=fFrame2)
fFrame2.grid_columnconfigure(0, weight=1)
fFrame2.grid_rowconfigure(0,weight=1)
treeView2.heading(0, text="Hd1"/span>)
treeView2. heading(1, text="Hd2")
treeView2.insert("", "end", values=arrData)
fFrame2.pack()
objWindow.bind("<Escape>", lambda wExit: objWindow.destroy()
objWindow.mainloop()
uj5u.com熱心網友回復:
你需要在樣式名稱 "Treeview.Heading "上添加前綴以創建自定義樣式,否則它將適用于所有的Treeview:
objStyle.configure("my.Treeview.Heading"/span>, background="#c3c3c3"/span>)
然后將這個自定義樣式應用到treeView2:
treeView2 = objTTK.Treeview(columns=arrHdr, show="headings"/span>, style="my.Treeview")
uj5u.com熱心網友回復:
修改后的代碼。由于它不允許在評論中添加代碼,因此將此作為答案添加進去。
import tkinter as objTK
from tkinter import ttk as objTTK
#創建視窗
objWindow = objTK.Tk()
#初始化變數
arrHdr = ["Hdr1"/span>, "Hdr2"/span>]
arrData = ["Test1"/span>, "Test2"]
# ------------ Treeview 1]
fFrame1 = objTK.LabelFrame(objWindow, text="Tree 1")
treeView1 = objTTK.Treeview(columns=arrHdr, show="標題")
treeView1.grid( column=0, row=0, sticky="nsew", in_=fFrame1)
fFrame1.grid_columnconfigure(0, weight=1)
fFrame1.grid_rowconfigure(0,weight=1)
treeView1.heading(0, text="Hd1"/span>)
treeView1. heading(1, text="Hd2")
treeView1.insert("", "end", values=arrData)
fFrame1.pack()
# ------------ Treeview 2
fFrame2 = objTK.LabelFrame(objWindow, text="樹2")
objStyle = objTTK.Style()
#objStyle.theme_use("clam")。
objStyle.configure("my.Treeview.Heading", background="#c3c3c3")
treeView2 = objTTK.Treeview(columns=arrHdr, show="headings", style="my.Treeview")
treeView2.grid( column=0, row=0, sticky="nsew", in_=fFrame2)
fFrame2.grid_columnconfigure(0, weight=1)
fFrame2.grid_rowconfigure(0,weight=1)
treeView2.heading(0, text="Hd1"/span>)
treeView2. heading(1, text="Hd2")
treeView2.insert("", "end", values=arrData)
fFrame2.pack()
objWindow.bind("<Escape>", lambda wExit: objWindow.destroy()
objWindow.mainloop()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/330591.html
標籤:
