python tkinter添加进度条

166 阅读1分钟

如果你要模拟一个耗时任务,并逐步更新进度条,可以用如下方式:

python
深色版本
import tkinter as tk
from tkinter import ttk
import time
import threading

def simulate_task():
    progress["value"] = 0
    for i in range(100):
        time.sleep(0.05)           # 模拟耗时操作
        progress["value"] += 1     # 手动增加进度
        root.update_idletasks()    # 刷新界面
    print("任务完成!")

def start_task():
    threading.Thread(target=simulate_task).start()

# 创建主窗口
root = tk.Tk()
root.title("手动控制进度条")
root.geometry("300x150")

# 创建进度条
progress = ttk.Progressbar(
    root,
    orient="horizontal",
    length=250,
    mode="determinate"
)
progress.pack(pady=20)

# 开始按钮
start_button = tk.Button(root, text="开始任务", command=start_task)
start_button.pack()

# 主循环启动
root.mainloop()

你可以使用 ttk.Style 来自定义进度条的颜色、高度等样式(Windows 下可能不完全支持):

python
深色版本
style = ttk.Style()
style.configure("red.Horizontal.TProgressbar", foreground="red", background="red")
progress = ttk.Progressbar(root, style="red.Horizontal.TProgressbar", ...)

✅ 六、总结

功能方法
创建进度条ttk.Progressbar(...)
自动更新.start(interval)
停止自动更新.stop()
手动更新progress["value"] += x
设置最大值maximum=100
获取当前值progress["value"]

✅ 小贴士

  • 如果你在 GUI 中执行耗时任务,请务必使用多线程(如 threading),否则会卡住界面。
  • Tkinter 是单线程事件模型,不能直接在主线程做长时间阻塞操作。