带百分比标签的进度条?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带百分比标签的进度条?相关的知识,希望对你有一定的参考价值。

如何在显示百分比的进度条中间放置标签?问题是python不支持标签背景的透明度,所以我不知道如何解决这个问题。

答案

这可以使用ttk.Style。我们的想法是修改Horizontal.TProgressbar样式的布局(对于垂直进度条使用Vertical.TProgressbar执行相同操作)以在栏内添加标签:

通常的Horizontal.TProgressbar布局:

[('Horizontal.Progressbar.trough',
  {'children': [('Horizontal.Progressbar.pbar',
     {'side': 'left', 'sticky': 'ns'})],
   'sticky': 'nswe'})]

附加标签:

[('Horizontal.Progressbar.trough',
  {'children': [('Horizontal.Progressbar.pbar',
     {'side': 'left', 'sticky': 'ns'})],
   'sticky': 'nswe'}),
 ('Horizontal.Progressbar.label', {'sticky': 'nswe'})]

然后,可以使用style.configure更改标签的文本。

这是代码:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

style = ttk.Style(root)
# add label in the layout
style.layout('text.Horizontal.TProgressbar', 
             [('Horizontal.Progressbar.trough',
               {'children': [('Horizontal.Progressbar.pbar',
                              {'side': 'left', 'sticky': 'ns'})],
                'sticky': 'nswe'}), 
              ('Horizontal.Progressbar.label', {'sticky': ''})])
# set initial text
style.configure('text.Horizontal.TProgressbar', text='0 %')
# create progressbar
variable = tk.DoubleVar(root)
pbar = ttk.Progressbar(root, style='text.Horizontal.TProgressbar', variable=variable)
pbar.pack()

def increment():
    pbar.step()  # increment progressbar 
    style.configure('text.Horizontal.TProgressbar', 
                    text='{:g} %'.format(variable.get()))  # update label
    root.after(200, increment)

increment()

root.mainloop()

screenshot of the result

以上是关于带百分比标签的进度条?的主要内容,如果未能解决你的问题,请参考以下文章

使用ajax实现简单的带百分比进度条

安卓带百分比的进度条显示

怎样用div实现带百分百环形进度条

一个简短小巧的带百分比的进度条

Asp.Net上传大文件带进度条swfupload

如何在 Alamofire 4.0 中添加带有上传进度百分比的标签的进度条