使用倒计数的方式模拟耗时操作进度。 要求界面上包含一个文本框,文本框显示的数据为进度百分比。计数从100倒计时到0,计数为100时显示0%,每倒计1个数,线程休眠100ms,每倒计10个数在文本框更改一次百分比显示数据,倒计时为0时显示100%。
时间: 2024-05-16 14:18:09 浏览: 115
以下是一个示例代码实现:
```python
import time
import threading
import tkinter as tk
class CountdownThread(threading.Thread):
def __init__(self, text_var):
super().__init__()
self.text_var = text_var
def run(self):
for i in range(100, -1, -1):
time.sleep(0.1)
if i % 10 == 0:
self.text_var.set(str(i) + "%")
if i == 0:
self.text_var.set("100%")
def start_countdown():
text_var = tk.StringVar()
text_var.set("100%")
root = tk.Tk()
root.title("Countdown")
root.geometry("200x100")
text = tk.Label(root, textvariable=text_var, font=("Arial", 20))
text.pack(pady=20)
CountdownThread(text_var).start()
root.mainloop()
if __name__ == "__main__":
start_countdown()
```
在这个示例代码中,我们创建了一个名为 `CountdownThread` 的线程类,该类继承自 `threading.Thread`。在 `CountdownThread` 的 `run` 方法中,我们使用 `for` 循环从 100 开始倒计时到 0,每次递减 1。在每次递减时,我们使用 `time.sleep(0.1)` 让线程休眠 100 毫秒,以模拟耗时操作。如果当前计数可以被 10 整除,我们更新文本框中的百分比显示数据。最后,当计数为 0 时,我们将文本框中的百分比显示数据设置为 100%。
在 `start_countdown` 函数中,我们创建了一个 `tkinter` 窗口,并在该窗口上创建了一个文本标签。我们使用 `CountdownThread(text_var).start()` 启动了 `CountdownThread` 线程,该线程将更新文本标签中的百分比显示数据。最后,我们调用 `root.mainloop()` 启动窗口的事件循环,使窗口保持打开状态。
阅读全文