我实际上正在创建一个包含搜索数据的图形用户界面。我想显示一个加载进度条(不确定)以显示正在加载结果。我希望这个进度条在新的顶层窗口中,但是我尝试将其放置最初没有显示。因此,经过大量研究,我让它出现在屏幕上,但存在问题。它会打开带有进度条的窗口,所有内容都会冻结,并且进度条本身无法正常工作,但是窗口会被及时破坏。我希望进度条移动,使其看起来具有响应性,以便用户知道发生了什么事情。在加载结果之前,然后开始加载结果,其中包括for循环2-3次,然后收集所有结果,然后完全销毁顶层窗口。 一切都在发生,请接受新窗口的冻结,进度条不会移动。
我已经尽力了。
class Loading:
def __init__(self,title):
self.title = title
self.window = Toplevel()
self.window.geometry('350x40+100+100')
self.window.title(self.title)
self.window.lift()
self.window.grab_set()
self.window.focus()
def start(self):
self.pbar = Progressbar(self.window, orient="horizontal",length=300,
mode="indeterminate")
self.pbar.place(x=10,y=5,height = 20,width = 300)
print('starting loading')
self.pbar.start()
self.window.update()
def stop(self):
self.window.destroy()
我希望我的顶级窗口显示进度条移动,直到所有rseults从不同的文件加载,然后在此之后销毁
答案 0 :(得分:0)
也许您可以尝试以下代码段!
from tkinter import *
from tkinter.ttk import *
root = Tk()
root.geometry('100x100')
def progressbar():
pwin = Toplevel(root)
pwin.geometry('350x40+100+100')
pwin.title('Sample progressbar')
pbar = Progressbar(pwin, orient="horizontal", length=300,
mode="indeterminate")
pbar.place(x=10, y=5, height=20, width=300)
print('starting loading')
pbar.start()
pwin.update()
Button(root, text='PBAR', command=progressbar).pack()
root.mainloop()
然后,您可以在加载完成后使用pwin.destroy()
破坏progressbar
!