【问题标题】:ttk Progressbar color - can you change with state?ttk 进度条颜色 - 你能改变状态吗?
【发布时间】:2021-01-25 17:00:03
【问题描述】:

我正在 Windows 10 机器上使用 tkinter 构建 Python 3 应用程序。我完成了它的构建,现在需要为新功能添加一个进度条。进度条必须根据其值改变颜色。

我的应用程序已经全部使用 vista 主题构建,因此无法更改为 clam 主题,因为我必须为每个其他元素调整 GUI。

我发现了一个讨论 here 暗示使用状态来改变栏的颜色。我试过了:

progressBar.state(statespec=["user3"])

试图把我的酒吧变成红色,但没有成功。它顽固地保持绿色。有没有其他方法可以为这些条设置状态以获得所需的效果?

因为我在 GUI 的其余部分使用 vista 主题,所以我不能简单地配置样式。非常感谢任何帮助。

【问题讨论】:

  • 根据他们在您分享的问题中所说的,可以利用进度条的系统状态。但是,这在 tkinter(本机 C++ 版本)中没有实现,需要您自己修改。然后,您需要将该修改扩展到 python 包装器以允许从 python 对其进行修改。这就是我对这个问题的理解......
  • 也就是说,也许这个其他问题可以帮助你:stackoverflow.com/questions/13510882/…

标签: python tkinter colors progress-bar ttk


【解决方案1】:

对于任何有类似问题的人,我建议查看here 关于更改 EntryBox 颜色的答案。

我使用了一个类似的解决方案来得到我想要的(同样,我在 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')

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多