python TK点击按钮后终止线程
时间: 2023-07-28 18:11:46 浏览: 268
python-tkinter之按钮的使用,开关方法
你可以在Tkinter的按钮回调函数中添加终止线程的代码。具体来说,你可以在回调函数中调用线程对象的 `stop()` 或 `join()` 方法来终止线程。
以下是一个示例代码:
```python
import threading
import time
import tkinter as tk
class MyThread(threading.Thread):
def __init__(self):
super().__init__()
self._stop_event = threading.Event()
def run(self):
while not self._stop_event.is_set():
print('Thread is running...')
time.sleep(1)
def stop(self):
self._stop_event.set()
def stop_thread():
thread.stop()
thread.join()
thread = MyThread()
root = tk.Tk()
button = tk.Button(root, text="Stop Thread", command=stop_thread)
button.pack()
thread.start()
root.mainloop()
```
在这个示例中,我们创建了一个名为 `MyThread` 的自定义线程类,该类包含了一个名为 `stop()` 的方法,当该方法被调用时会设置一个 `_stop_event` 标志,从而终止线程。
在 Tkinter 应用程序中,我们创建了一个 `Button` 按钮和一个回调函数 `stop_thread()`。当用户单击按钮时,该回调函数会调用 `stop()` 方法来终止线程,并等待线程完成运行。
注意,由于 `stop()` 方法中使用了 `_stop_event` 标志来控制线程的终止,因此在 `run()` 方法中需要定期检查 `_stop_event` 标志,以确保线程能够在正确的时候退出。
阅读全文