Python Tkinter 进度条

#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()

效果图:
这里写图片描述

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JOSON.

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值