如何在python中更改ttk.progressBar颜色

2024-06-16 20:49:05 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道我如何改变我的ttk.progressBar的颜色吗?现在它是绿色的,我希望它是蓝色的。

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

Tags: importself颜色modeplacelength蓝色ttk
3条回答

您可以更改progressbar的颜色,但这很棘手。首先,您需要了解,如果您使用默认主题,即如果您没有在tk.style中指定主题,则默认主题。然后它会将所需的所有信息传递给操作系统,操作系统将使用其样式进行绘图,而忽略传递给它的样式信息。这意味着它将在窗口等上绘制一个窗口样式的绿色进度条。您需要做的是将主题更改为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()

这张照片证实了它的有效性

Progress bar color

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

troughcolor:完整小部件的背景
背景:进度条背景
深色:底部和右侧进度条最里面的边框
浅色:左上栏进度栏最里面的边框
bordercolor:进度条和整个小部件的大纲边框(在上面的边框之外)

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

&13;
&13;
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)

我发现这对我来说行不通, 但我不想说这是错的 我发现了 使用[troughcolor]更改背景,使用[background]更改指示栏

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

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

相关问题 更多 >