11

有谁知道如何更改 ttk.progressBar 的颜色?它现在显示绿色,我希望它是蓝色的。

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

4 回答 4

15

您可以更改进度条的颜色,但这很棘手。首先,你需要明白,如果你使用默认主题,如果你没有在tk.style. 然后它将所需的所有信息传递给操作系统,操作系统将使用其样式进行绘图,而忽略您传递给它的样式信息。这意味着它将在 Windows 上绘制一个 Window 风格的绿色进度条,依此类推。您需要做的是将主题更改为 ttk 绘制的自定义主题。尝试"clam"风格,它是 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()

这是一张确认它有效的图片。

进度条颜色

于 2013-06-29T19:12:55.593 回答
5

您需要使用样式来设置进度条颜色。进度条样式元素有:

元素 定义
troughcolor 完整小部件的背景
background 进度条背景
darkcolor 底部和右侧进度条最内边框
lightcolor 顶部和左侧栏进度条最内边框
bordercolor 进度条的轮廓边框(在上述边框之外)和整个小部件

如果希望边框与进度条颜色相同,可以使用以下代码:

TROUGH_COLOR = 'blue'
BAR_COLOR = 'green'
style.configure("bar.Horizontal.TProgressbar", troughcolor=TROUGH_COLOR, 
                bordercolor=TROUGH_COLOR, background=BAR_COLOR, lightcolor=BAR_COLOR, 
                darkcolor=BAR_COLOR)
于 2019-06-20T04:20:37.287 回答
2

我发现对我来说它不起作用,我不想说这是错误的,但是我发现使用 [troughcolor] 更改背景和 [background] 指示栏

不为我工作 s.configure("red.Horizontal.TProgressbar", foreground='red', background='red')

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

于 2015-05-13T11:01:09.567 回答
1

Progressbar 似乎采取了风格论点。根据文档,可以使用样式设置前景色和背景色。

注意:我自己没有尝试过,只是为您指出相关文档

于 2012-11-22T10:49:55.533 回答