所以我正在编写一个脚本,这是脚本:
from tkinter import *
from tkinter import ttk
import tkinter
window=tkinter.Tk()
load=ttk.Progressbar(window, orient="horizontal",length="200",maximum="100", mode="determinate")
load.pack()
load.configure(value=0)
for int in range (0, 101):
load.configure(value=int)
window.title("{}%".format(int))
window.mainloop()
所以我希望我的进度条开始为0然后开始工作但是它从启动窗口开始然后立即变为100。 非常感谢任何帮助。
答案 0 :(得分:1)
使用after
来延迟调用函数。
除此之外你不能使用长时间运行的功能,因为它会停止处理事件的主循环并重新绘制屏幕上的所有对象。
from tkinter import *
from tkinter import ttk
import tkinter
# ---
def update(value=0):
# update
load.configure(value=value)
window.title("{}%".format(value))
if value < 100:
# run again after 100ms (0.1s) with new value
window.after(100, update, value+1)
# ---
window=tkinter.Tk()
load = ttk.Progressbar(window, orient="horizontal",length="200",maximum="100", mode="determinate")
load.configure(value=0)
load.pack()
# update(0) # run immediately
# run after 100ms (0.1s) with value=0
window.after(100, update, 0)
window.mainloop()