问题描述
我正在 Windows 10 机器上使用 tkinter 构建 Python 3 应用程序。我完成了它的构建,现在需要为新功能添加进度条。进度条必须根据其值改变颜色。
我的应用程序已经全部使用 vista 主题构建,因此无法更改为蛤蜊主题,因为我将不得不为每个其他元素调整 GUI。
我发现一个讨论 here 暗示使用状态来改变条的颜色。我试过了:
progressBar.state(statespec=["user3"])
试图把我的酒吧变成红色,但没有成功。它顽固地保持绿色。有没有其他方法可以为这些条设置状态以获得所需的效果?
因为我的 GUI 的其余部分都使用 vista 主题,所以我不能简单地配置样式。非常感谢任何帮助。
解决方法
对于遇到类似问题的任何人,我建议查看有关更改 EntryBox 颜色的答案 https://www.crowdcast.io/e/press-1-for-sales。
我使用了类似的解决方案来获得我想要的东西(同样,我在 Windows 10 机器上使用 Python 3):
from tkinter import *
from tkinter import ttk
root = Tk()
style = ttk.Style()
style.element_create("color.pbar","from","clam")
style.layout("ColorProgress.Horizontal.TProgressbar",[('Horizontal.Progressbar.trough',{'sticky': 'nswe','children': [('Horizontal.Progressbar.color.pbar',{'side': 'left','sticky': 'ns'})]})])
style.configure("ColorProgress.Horizontal.TProgressbar",background='orange')
myProgress=ttk.Progressbar(root,orient='horizontal',length=500,mode='determinate',style='ColorProgress.Horizontal.TProgressbar')