python - 为什么我在顶层窗口中的进度条没有移动?
问题描述
我实际上正在创建一个包含搜索数据的 gui。我想显示一个加载进度条(不确定)以显示正在加载的结果。我希望这个进度条在一个新的顶层窗口中,但我试图放置它但它没有起初显示。所以经过多次研究,我让它出现在屏幕上,但它有一个问题。它打开带有进度条的窗口,一切都冻结了,进度条本身不起作用。但是窗口会按时销毁。我希望进度条移动,使其看起来有响应,以便用户了解正在发生的事情。我启动进度条就在加载结果之前,然后开始加载包含 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 从不同的文件中加载并在此之后被销毁
解决方案
也许你可以试试这段代码!
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
推荐阅读
- twilio - Authy API Webhook - 无效的签名响应
- java - 将带有字符串索引的运行数字添加到 Spark 中的数据帧?
- javascript - 获取并乘以 WooCommerce 产品格式的价格以插入 Javascript
- amazon-ec2 - pm2 start -i max run on 12 vcpu 买我的 ec2 只有 8 vcpu
- java - SpringBoot中的@Bean实现-再次调用bean
- algorithm - 了解这个地形相交算法
- reactjs - 使用 React-Router v6 进行身份验证后,如何将用户重定向回最初请求的页面?
- find - Git Bash在包含空格的文件夹和文件上递归查找exec
- android - 如何为线性recyclerView创建爆炸动画
- python - 使用 displacy 显示自定义实体