gpt4 book ai didi

python - 我如何在 tkinter 时使用 Work

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:56 24 4
gpt4 key购买 nike

运行 tkinter 的函数卡住。我想使用 Tkinter 窗口运行该进程。运行进度条时我想使用 tkinter window,但我不能因为它卡住了 tkinter。如何在 time.sleep(10) 或其他函数工作时使用根窗口

import tkinter.ttk as ttk
import tkinter as tk
import time

progress = 0


def loading(window=None):
mpb = ttk.Progressbar(window, orient="horizontal", length=200, mode="determinate")
mpb.place(y=0, x=0)
mpb["maximum"] = 100
mpb["value"] = progress
print(progress)


def incrase():
global progress
print(progress)
progress += 1
time.sleep(10) # for example, a function works here and tkinter freezes
loading() # i don't want tkinter freezes


root = tk.Tk()
loading(root)
ttk.Button(root, text='increase', command=incrase).place(x=0, y=25, width=90)

root.mainloop()

感谢您的解答

最佳答案

您应该使用after()您可以使用它安排在一段时间后调用 loading() 函数。

程序

以下是如何在程序中使用它:

import tkinter.ttk as ttk
import tkinter as tk
import time

progress = 0


def loading(window):
mpb = ttk.Progressbar(window, orient="horizontal", length=200, mode="determinate")
mpb.place(y=0, x=0)
mpb["maximum"] = 100
mpb["value"] = progress
print(progress)


def incrase():
global root
global progress
print(progress)
progress += 1
root.after(10, loading(root)) # schedule loading()



root = tk.Tk()
loading(root)
ttk.Button(root, text='increase', command=incrase).place(x=0, y=25, width=90)

root.mainloop()

演示

上述运行程序截图:

enter image description here

关于python - 我如何在 tkinter 时使用 Work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com