You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何实现Tkinter进度条值达100%时弹出消息框

Tkinter进度条完成时弹出消息框的解决方案

你的代码存在两个核心问题导致无法触发完成消息:一是check函数仅执行一次,无法持续监测进度条数值;二是进度条调用start()后会无限循环增长,不会在达到100%时自动停止。

以下是修正后的代码:

from tkinter import *
from tkinter import ttk
from tkinter import messagebox

def start_bar():
    progress_bar.start(100)  # 每100毫秒增加一次进度
    check()  # 启动进度监测

def check():
    if progress_bar['value'] >= progress_bar['maximum']:
        progress_bar.stop()  # 停止进度条增长
        messagebox.showinfo("Completion Message", "Progress bar is complete.")
    else:
        # 每100毫秒再次检查进度状态
        progress_bar.after(100, check)

root = Tk()
root.geometry("600x400")
root.title("progressbar")

# 显式设置进度条最大值为100,逻辑更清晰
progress_bar = ttk.Progressbar(root, orient=HORIZONTAL, mode="determinate", length=300, maximum=100)
progress_bar.pack(pady=20)

Button(root, text="start", command=start_bar).pack(pady=10)

root.mainloop()

关键修改说明:

  • 在check函数中通过after递归调用自身,实现对进度条的持续监测
  • 当进度达到上限时,先调用stop()终止进度增长,再弹出完成消息
  • 显式指定maximum参数,避免依赖默认值可能带来的逻辑模糊

内容的提问来源于stack exchange,提问作者Lennard Stalman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:50:25