Tkinter/TTK: 如何判断一个ProgressBar是否达到最大值?
Tkinter/TTK: How to determine if a ProgressBar reaches the maximum value?
我正在尝试制作一个简单的程序,当进度条使用 ttk 达到最大值时,将 "done" 打印到控制台。
示例:
from tkinter import *
import tkinter.ttk
root = Tk()
pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate')
pb.pack()
pb.start()
if pb['value'] == 100: #This isn't correct it's just an example.
pb.stop()
print("Done")
root.mainloop()
我目前使用的是python 3.5.2,请尽量避免使用类和objects,我理解起来有点吃力。
您可以通过指示每 100 毫秒左右调用一个函数来自行更新该值,如下所示:
from tkinter import *
import tkinter.ttk
root = Tk()
pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate')
pb.pack()
def task():
pb['value'] += 1
if pb['value'] >= 99:
print("Done")
else:
root.after(100, task) # Tell the mainloop to run "task()" again after 100ms
# Tell the mainloop to run "task()" after 100ms
root.after(100, task)
root.mainloop()
您通常不会在确定模式下启动 () 进度条,因为您应该自己更新该值。在不确定模式下,条来回跳动以暗示正在发生某些事情,这就是为什么你需要 start() 它。
我正在尝试制作一个简单的程序,当进度条使用 ttk 达到最大值时,将 "done" 打印到控制台。
示例:
from tkinter import *
import tkinter.ttk
root = Tk()
pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate')
pb.pack()
pb.start()
if pb['value'] == 100: #This isn't correct it's just an example.
pb.stop()
print("Done")
root.mainloop()
我目前使用的是python 3.5.2,请尽量避免使用类和objects,我理解起来有点吃力。
您可以通过指示每 100 毫秒左右调用一个函数来自行更新该值,如下所示:
from tkinter import *
import tkinter.ttk
root = Tk()
pb = tkinter.ttk.Progressbar(root, orient=HORIZONTAL, length=200, mode='determinate')
pb.pack()
def task():
pb['value'] += 1
if pb['value'] >= 99:
print("Done")
else:
root.after(100, task) # Tell the mainloop to run "task()" again after 100ms
# Tell the mainloop to run "task()" after 100ms
root.after(100, task)
root.mainloop()
您通常不会在确定模式下启动 () 进度条,因为您应该自己更新该值。在不确定模式下,条来回跳动以暗示正在发生某些事情,这就是为什么你需要 start() 它。