【问题标题】:Cant change Progressbar color from tkinter to red无法将进度条颜色从 tkinter 更改为红色
【发布时间】:2019-10-31 13:26:51
【问题描述】:

我已经看到了一些更改进度条颜色的解决方案,但是,当尝试应用它们时,它不起作用并保持绿色。

我可能错过了一件愚蠢的事情。

这是一个垂直的进度条,需要 10 秒才能填满。我想要的只是条变成红色而不是绿色。

from tkinter import *
from tkinter.ttk import *
import time
root = Tk()
root.geometry("500x500")
seconds = 10
s = Style()
s.configure("red.Vertical.TProgressbar", foreground = 'red', background = 'red', throughcolor = 'red')
progress = Progressbar(root, orient = VERTICAL, length = 9999999, mode = 'determinate')
progress.configure(style = 'red.Vertical.TProgressbar')
progress.pack(ipadx = 200000, padx = 50, pady = 50) 
start_time = time.time()
elapsed_time = time.time() - start_time

while elapsed_time/seconds*100 < 100:
    progress['value'] = elapsed_time/seconds*100
    elapsed_time = time.time() - start_time
    root.update()
    time.sleep(0)

【问题讨论】:

  • 这能回答你的问题吗? How to change ttk.progressBar color in python
  • 我尝试了没有其他任何东西的确切代码,但它仍然有一个绿色条
  • 我不相信你。当我在 Python 3.8 中运行它时,条形图是红色的。
  • 我认为问题在于我没有使用主题,而是试图仅复制粘贴我“认为”可以使用的行
  • 是的,对不起。我被吓傻了

标签: python-3.x tkinter progress-bar


【解决方案1】:

试试这个:

import time
import tkinter  as tk
from  tkinter import  ttk
root = tk.Tk()
root.geometry("500x500")
seconds = 10
s = ttk.Style()
s.theme_use('clam')
s.configure("red.Vertical.TProgressbar", foreground='red', background='red')
progress = ttk.Progressbar(root, style="red.Vertical.TProgressbar", orient="vertical", length=600, mode="determinate", maximum=4, value=1)
progress.pack(ipadx = 200000, padx = 50, pady = 50)

start_time = time.time()
elapsed_time = time.time() - start_time

while elapsed_time/seconds*100 < 100:
    progress['value'] = elapsed_time/seconds*100
    elapsed_time = time.time() - start_time
    root.update()
    time.sleep(0)

我试过你的变种时也是绿色的。

【讨论】:

  • 成功了。缺少的行是s.theme_use('clam')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
相关资源
最近更新 更多