python-3.x 进度条值为100%后的消息框

ymzxtsji  于 2023-02-17  发布在  Python
关注(0)|答案(1)|浏览(129)

我做了一个进度条,但我想我的tkinter程序显示一个消息框时,值是100%,有人能帮助我吗?

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

def start_bar():
    progress_bar.start(100)
    progress_bar.after(100,check)

def check():
     if progress_bar['value'] == 100:
        messagebox.showinfo("Completion Message", "Progress bar is complete.")

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

progress_bar = ttk.Progressbar(root,orient=HORIZONTAL,mode="determinate",length=300)
progress_bar.pack(pady=20)

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

root.mainloop()

我把我的代码放进去了所以你可以看到我试了什么。

zynd9foi

zynd9foi1#

check()函数中添加另一个对progress_bar.after(100, check)的调用,以便它定期调用自身并轮询进度条的值

def check():
     check_poll = progress_bar.after(100, check)  # poll the progress bar 10x/sec
     if progress_bar['value'] >= 99:
        progress_bar.after_cancel(check_poll)  # stop polling
        progress_bar.stop()  # stop incrementing the progress bar
        messagebox.showinfo("Completion Message", "Progress bar is complete.")
  • EDIT* -测试后,看起来条形图实际上从未达到100,因此您需要在>= 99处中断。或者,您可以使用if not progress_bar['value'] * 或 *(可能更“正确/Python”)if progress_bar['value'] == 0,当条形图再次循环到0时将触发。

相关问题