ttk.progressbar能在某个事件出现后才显示吗
时间: 2023-12-06 12:02:05 浏览: 137
可以的,可以在事件触发后再显示ttk.Progressbar。可以使用ttk.Progressbar的`grid_forget()`方法将其从GUI中移除,然后在事件触发后再使用`grid()`方法将其重新添加到GUI中,从而实现在事件触发后才显示ttk.Progressbar的效果。
以下是一个示例代码:
```
import tkinter as tk
from tkinter import ttk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title("Progress Bar Demo")
self.geometry("300x100")
self.btn = tk.Button(self, text="Start", command=self.start_task)
self.btn.pack(pady=10)
self.pbar = ttk.Progressbar(self, length=200, mode="indeterminate")
def start_task(self):
# 隐藏按钮
self.btn.grid_forget()
# 显示进度条
self.pbar.grid(row=1, column=0, padx=10, pady=10)
# 模拟耗时任务
self.after(2000, self.end_task)
def end_task(self):
# 隐藏进度条
self.pbar.grid_forget()
# 显示按钮
self.btn.grid(row=1, column=0, padx=10, pady=10)
if __name__ == "__main__":
app = App()
app.mainloop()
```
在这个示例中,当点击按钮后,会隐藏按钮并显示进度条,然后模拟一个耗时任务,2秒后任务完成,会隐藏进度条并显示按钮。这样就实现了在事件触发后才显示ttk.Progressbar的效果。
阅读全文