python tkinter 点击按钮后显示进度条,进度条到达100%隐藏进度条,在窗口显示已完成!
时间: 2024-01-11 21:42:32 浏览: 306
可以使用`tkinter`自带的`Progressbar`和`Label`来实现这个功能。具体实现步骤如下:
1. 导入`tkinter`模块和`Progressbar`模块。
```python
import tkinter as tk
from tkinter import ttk
```
2. 创建一个窗口和按钮,并将按钮绑定一个函数。
```python
def start_progress():
# 在这里添加进度条的逻辑
pass
# 创建窗口
window = tk.Tk()
window.title("进度条示例")
# 创建按钮
button = tk.Button(window, text="开始", command=start_progress)
button.pack()
```
3. 在`start_progress`函数中,创建一个`Progressbar`和`Label`,并将它们添加到窗口中。然后使用`after`方法来模拟进度条的进度。
```python
def start_progress():
# 创建进度条和标签
progressbar = ttk.Progressbar(window, orient="horizontal", length=200, mode="determinate")
progressbar.pack()
label = tk.Label(window, text="正在进行中...")
label.pack()
# 模拟进度条的进度
for i in range(101):
progressbar["value"] = i
window.update_idletasks()
# 暂停一段时间,以模拟进度条的进度
window.after(50)
# 隐藏进度条和标签,显示已完成
progressbar.pack_forget()
label.pack_forget()
finished_label = tk.Label(window, text="已完成!")
finished_label.pack()
```
完整代码如下:
```python
import tkinter as tk
from tkinter import ttk
def start_progress():
# 创建进度条和标签
progressbar = ttk.Progressbar(window, orient="horizontal", length=200, mode="determinate")
progressbar.pack()
label = tk.Label(window, text="正在进行中...")
label.pack()
# 模拟进度条的进度
for i in range(101):
progressbar["value"] = i
window.update_idletasks()
# 暂停一段时间,以模拟进度条的进度
window.after(50)
# 隐藏进度条和标签,显示已完成
progressbar.pack_forget()
label.pack_forget()
finished_label = tk.Label(window, text="已完成!")
finished_label.pack()
# 创建窗口
window = tk.Tk()
window.title("进度条示例")
# 创建按钮
button = tk.Button(window, text="开始", command=start_progress)
button.pack()
window.mainloop()
```
阅读全文