Tkinter Progressbar进度条组件简介

Tkinter的Progressbar进度组件,是ttk新增的组件之一,主要用于进度的展示,让用户可以直观的了解到程序的实时进度情况。

进度条主要有两种模式,一种是,指针从起点到终点,用于程序知道当前的进度或完成时间,这也是默认模式。另一种,指针会在起点和终点来回移动,用于程序不确定当前进度或完成时间。

常用属性

属性名 说明
length 进度条长度
maximum 进度条的最大值 默认100
mode 模式 determinate(默认) indeterminate(来回移动)
orient 进度条方向 默认水平(horizontal) 垂直 (vertical)
value 进度条值
variable 通过变量设置进度条值 取值IntVar\DoubleVar类型

常用方法

方法名 说明
start(interval) 开始展示进度。传参设置隔多久执行一次step方法 默认是50ms
step(amount) 进度条数量增加量 默认为1
stop(amount) 停止进度条

进度条组件示例代码

 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
import threading
import time
from tkinter import *
from tkinter.ttk import *

win = Tk()
win.geometry("300x300")
val = IntVar(value=0)
p1 = Progressbar(win, variable=val)
p1.pack(side=TOP)
p2 = Progressbar(win, mode="indeterminate", orient=VERTICAL)
p2.pack()


def start():
    p2.start()
    b1.configure(state=DISABLED)
    # 开一个线程 模拟进度 防止界面卡顿
    threading.Thread(target=update_p1).start()


def update_p1():
    global val
    for i in range(100):
        val.set(i)
        time.sleep(0.1)


b1 = Button(text="开始", command=start)
b1.pack()
b2 = Button(text="停止", command=lambda: p2.stop())
b2.pack()

win.mainloop()

进度条组件示例 进度条组件示例

站长微信
请备注来意
二维码