Python 在Tkinter中与进度条相交

Python 在Tkinter中与进度条相交,python,python-2.7,tkinter,ttk,Python,Python 2.7,Tkinter,Ttk,正如标题所说,我想在Tkinter中的某个可变位置与进度条相交。查看我想要实现的目标的图像,即我编辑到图像中的红色垂直线。 其想法是将类似“| |”的文本放在条内,并以不同的颜色对其进行着色,使其看起来像我想要实现的效果。我看到了几个例子,文本被放入进度条中,但它总是在栏的中间,这对我不起作用。br/> 下面是生成进度条的代码 import ttk from Tkinter import * import random master = Tk() stl = ttk.Style() stl.

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





其想法是将类似“| |”的文本放在条内,并以不同的颜色对其进行着色,使其看起来像我想要实现的效果。我看到了几个例子,文本被放入进度条中,但它总是在栏的中间,这对我不起作用。br/>

下面是生成进度条的代码

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
小部件不支持此操作。但是,您可以创建一个小的彩色
框架
,并使用
放置
将其放置在进度条的顶部

例如:

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计算机的权限,但这是我的mac上的外观:


不错。用于
place()
的酷盒。我将不得不把它添加到我的
place()
@Mike SMT的可能用途列表中:是的,有时候它正是适合这项工作的工具。