与 Tkinter 中的进度条相交

intersect a progress bar in Tkinter

如标题所说,我想在某个可变位置与 Tkinter 中的进度条相交。查看我想要实现的图像,我编辑到图像中的那些红色垂直线。




这个想法是把像“||”这样的文字在栏内并为其着色不同,所以它看起来应该像我想要实现的那样。我已经看到几个将文本放入进度条的示例,但它总是位于进度条的中间,这对我来说不起作用。


这是生成进度条的代码。

import ttk
from Tkinter import *
import random
master = Tk()

stl = ttk.Style()
stl.theme_use("winnative")
stl.configure("colour.Horizontal.TProgressbar", background="lime green")

for i in range(0,4):
    prgb = ttk.Progressbar(master, orient = "horizontal", length = 150, mode = "determinate", style = "colour.Horizontal.TProgressbar")
    prgb.grid(row=i, column=0, pady=10) 
    prgb["maximum"] = 1.0
    x = random.random()
    prgb["value"] = x


master.mainloop()

ProgressBar 小部件不支持此功能。但是,您可以创建一个小的彩色 Frame 并使用 place 将其放在进度条的顶部。

示例:

for i in range(0,4):
    prgb = ttk.Progressbar(...)
    ...
    x = random.random()
    ...
    marker = Frame(prgb, width=4, background="red")
    position = random.uniform(0,x)
    marker.place(relx=position, rely=.5, anchor="w", relheight=.5)

我无法访问 windows machine,但这就是我 mac:

上的样子