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

Cor*_*yza 6 python colors ttk progress-bar

有谁知道如何改变我的ttk.progressBar的颜色?它现在显示绿色,我很想让它变蓝.

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

小智 11

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

元素 定义
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)
Run Code Online (Sandbox Code Playgroud)


cla*_*lan 9

你可以改变进度条的颜色,但这很棘手.首先,您需要了解如果您使用默认主题,如果您未在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()
Run Code Online (Sandbox Code Playgroud)

这是确认它正常工作的图片

进度条颜色


mba*_*rov 1

Progressbar 似乎有一个风格争论。根据文档,可以使用样式来设置前景色和背景色。

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