2012-11-22 257 views
3

有誰知道我可以如何更改我的ttk.progressBar的顏色?現在它顯示出一種綠色,我很想把它變成藍色。如何更改Python中的ttk.progressBar顏色

import ttk 
self.progressBar = ttk.Progressbar(frame3, length=560, maximum=100, mode='determinate'); 
self.progressBar.place(x=-5, y=60) 
+0

這是一個重複的[我的問題](http://stackoverflow.com/questions/13157214/changing-colour-of-ttk-progressbar-elements-in -the-xpnative-theme-python),但希望這會得到更多的關注 – jbaldwin

+0

但是,你可以基本上改變windows主題中的一個(alt)的顏色。但使用tcl你可以改變狀態,但我不確定... – jbaldwin

回答

0

Progressbarappears to take一個樣式參數。根據documentation,樣式可用於設置前景和背景顏色。

注:我還沒有嘗試過自己,只是指出你相關的文檔

5

你可以改變一個進度條的顏色,但它是棘手的。首先,如果您不使用tk.style中的主題,則需要了解是否使用了默認主題(默認主題)。然後它會將所需的所有信息傳遞給操作系統,該操作系統將使用其風格來繪製圖形,而忽略通過它的樣式信息。這意味着它將在Windows上繪製一個Window樣式的綠色進度條等等。你需要做的是將主題改爲ttk繪製的自定義主題。嘗試「蛤蜊」風格,它是ttk允許你選擇的最好看的風格之一。這裏是從劇本我寫了一個工作適應摘錄:

import Tkinter as tk 
import ttk as ttk 
root = tk.Tk() 
frame = tk.Frame(root) 
frame.grid() 
s = ttk.Style() 
s.theme_use('clam') 
s.configure("red.Horizontal.TProgressbar", foreground='red', background='red') 
ttk.Progressbar(frame, style="red.Horizontal.TProgressbar", orient="horizontal", length=600, mode="determinate", maximum=4, value=1).grid(row=1, column=1) 
frame.pack() 

,這裏是一個圖像確定它的工作

Progress bar color

+0

我編輯你的答案,包括圖片本身(應該很快出現)。下一次,使用圖像控件直接添加圖像,因爲未來可能會斷開鏈接。不錯,雖然。 – MasterAM

0

我發現,對我來說這不會工作, 我不t想說這是錯誤的,但是 我找到了 使用[troughcolor]更改指示條的背景和[背景]

不適用於m Ë s.configure("red.Horizontal.TProgressbar", foreground='red', background='red')

我的工作方式 s.configure("red.Horizontal.TProgressbar", troughcolor ='gray', background='red')