tkinter:具有不同颜色的进度条
我在这个程序中使用了一个进度条来连接刻度。我想要的是,从0到25,progressbar是绿色的,从25到50黄色的,从50到75橙色的,从75到100红色的,但是我寻找的不同部分有自己的颜色,并不是所有的progressbar都会改变它的颜色,就像在这个程序中一样(因此,在最后,例如,如果刻度为65,progressbar将有一个绿色部分、一个黄色部分和一个橙色部分)。 我完全不知道该怎么做,什么也没发现 如果你能帮助我,谢谢你 这是我的程序:tkinter:具有不同颜色的进度条,tkinter,colors,progress-bar,sections,Tkinter,Colors,Progress Bar,Sections,我在这个程序中使用了一个进度条来连接刻度。我想要的是,从0到25,progressbar是绿色的,从25到50黄色的,从50到75橙色的,从75到100红色的,但是我寻找的不同部分有自己的颜色,并不是所有的progressbar都会改变它的颜色,就像在这个程序中一样(因此,在最后,例如,如果刻度为65,progressbar将有一个绿色部分、一个黄色部分和一个橙色部分)。 我完全不知道该怎么做,什么也没发现 如果你能帮助我,谢谢你 这是我的程序: from tkinter import * fr
from tkinter import *
from tkinter import ttk
def volumelevel(scalevar):
scalevar=int(scalevar)
if scalevar <= 25:
s.configure("Horizontal.TProgressbar",background="green")
progress.configure(style="Horizontal.TProgressbar",value=scalevar)
elif scalevar <= 50:
s.configure("Horizontal.TProgressbar",background="yellow")
progress.configure(style="Horizontal.TProgressbar",value=scalevar)
elif scalevar <= 75:
s.configure("Horizontal.TProgressbar",background="orange")
progress.configure(style="Horizontal.TProgressbar",value=scalevar)
elif scalevar <= 100:
s.configure("Horizontal.TProgressbar",background="red")
progress.configure(style="Horizontal.TProgressbar",value=scalevar)
root=Tk()
s=ttk.Style(root)
s.theme_use("clam")
progress=ttk.Progressbar(root,maximum="100",style="Horizontal.TProgressbar")
progress.pack()
scalevar=IntVar()
scale=Scale(root,from_=0,to=100,orient="horizontal",variable=scalevar,command=volumelevel)
scale.pack()
root.mainloop()
从tkinter导入*
从tkinter导入ttk
def容积级别(scalevar):
scalevar=int(scalevar)
如果scalevar可能progressbar
无法做到这一点,但是tkinter.canvas
可以轻松做到这一点
这是图像:
及
这是你想要的吗
from tkinter import *
from tkinter import ttk
def volumelevel(scalevar):
scalevar=int(scalevar)
canvas.delete(ALL)
if scalevar <= 25:
canvas.create_rectangle(0,5,scalevar,15,fill="green")
elif scalevar <= 50 and scalevar > 25:
canvas.create_rectangle(0, 5, 25, 15, fill="green")
canvas.create_rectangle(25, 5, scalevar,15 ,fill="yellow")
elif scalevar <= 75 and scalevar > 50:
canvas.create_rectangle(0, 5, 25, 15, fill="green")
canvas.create_rectangle(25, 5, 50, 15, fill="yellow")
canvas.create_rectangle(50, 5, scalevar, 15, fill="orange")
else:
canvas.create_rectangle(0, 5, 25, 15, fill="green")
canvas.create_rectangle(25, 5, 50, 15, fill="yellow")
canvas.create_rectangle(50, 5, 75, 15, fill="orange")
canvas.create_rectangle(75, 5, scalevar, 15, fill="red")
root=Tk()
s=ttk.Style(root)
s.theme_use("clam")
canvas = Canvas(root,bd=1,relief="solid",width=98,height=15) # I find when width=98 can make canvas filled when scale = 100;
canvas.pack()
scalevar=IntVar()
scale=Scale(root,from_=0,to=100,orient="horizontal",variable=scalevar,command=volumelevel)
scale.pack()
root.mainloop()
从tkinter导入*
从tkinter导入ttk
def容积级别(scalevar):
scalevar=int(scalevar)
canvas.delete(全部)
如果scalevar是这样的话!!谢谢!!