当前位置:   article > 正文

Python Tkinter 进度条_python 创立了函数,在tk界面 根据函数运行进度添加进度条

python 创立了函数,在tk界面 根据函数运行进度添加进度条
#coding = utf-8
from tkinter import *
from tkinter import StringVar
import time


class Progress(object):
    """docstring for Progress"""

    def __init__(self):
        self.root = Tk()
        self.root.geometry('245x30')
        self.root.title('进度条')

        self.var = StringVar()
        self.var.set("开始")
        self.button =  Button(self.root,textvariable = self.var,command = self.start, width = 5)
        self.button.grid(row = 0,column = 0,padx = 5)

        # 创建一个背景色为白色的矩形
        self.canvas = Canvas(self.root,width = 170,height = 26,bg = "white")
        # 创建一个矩形外边框(距离左边,距离顶部,矩形宽度,矩形高度),线型宽度,颜色
        self.out_line = self.canvas.create_rectangle(2,2,180,27,width = 1,outline = "black") 
        self.canvas.grid(row = 0,column = 1,ipadx = 5)

        self.root.mainloop()

    def start(self):
        self.button.config(state="disable") # 设置按钮只允许点击一次
        fill_line = self.canvas.create_rectangle(2,2,0,27,width = 0,fill = "blue") 

        x = 200    # 未知变量,可更改
        n = 180/x  # 180是矩形填充满的次数
        k = 100/x  # 显示值

        for i in range(x):
            n = n+180/x
            k = k+100/x
            # 以矩形的长度作为变量值更新
            self.canvas.coords(fill_line, (0, 0, n, 30))
            if k >= 100:
                self.var.set("100%")
            else:
                self.var.set(str(round(k,1))+"%")
            self.root.update()
            time.sleep(0.01)

if __name__ == '__main__':
    Progress()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

效果图:
这里写图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/761225
推荐阅读
相关标签
  

闽ICP备14008679号