python - 如何杀死运行 Tkinter 代码的线程?
问题描述
我正在尝试运行一个代码来检查蓝牙连接,如果该特定连接不存在,则会出现白屏。为此,我编写了 Tkinter 代码,我正在尝试使用多线程控制该白屏,但是当我杀死线程时,弹出窗口并没有消失。
# Python program using
# traces to kill threads
import sys, threading, time
from tkinter import *
from tkinter import messagebox
class TraceThread(threading.Thread):
def __init__(self, *args, **keywords):
threading.Thread.__init__(self, *args, **keywords)
self.killed = False
def start(self):
self._run = self.run
self.run = self.settrace_and_run
threading.Thread.start(self)
def settrace_and_run(self):
sys.settrace(self.globaltrace)
self._run()
def globaltrace(self, frame, event, arg):
return self.localtrace if event == 'call' else None
def localtrace(self, frame, event, arg):
if self.killed and event == 'line':
raise SystemExit()
return self.localtrace
def func():
root=Tk()
l1=Label(root,text="please wait connection",width=200,font='Helvetica 22 bold').place(x=-1000,y=400)
root.overrideredirect(True)
root.overrideredirect(False)
root.attributes("-fullscreen", True)
root.mainloop()
t = TraceThread(target=func)
t.start()
time.sleep(2.5)
t.killed = True # sends a SIGTERM
t = TraceThread(target=func)
t.start()
time.sleep(2.5)
t.killed = True # sends a SIGTERM
如果有人有办法杀死它,请分享谢谢
解决方案
推荐阅读
- java - 错误:无法初始化主类 [在 Eclipse 中]
- python - 同一级别的 FastAPI 调用文件,但在不同的目录中
- powershell - Powershell查找文件夹/子文件夹,然后写入if条件以仅在文件夹A大于文件夹B时执行操作
- python - 有没有在数据框中分组的方法?
- javascript - Google Maps basic embed doesn't work on mobiles
- python-3.x - 标记默认月份 - python pandas
- postgresql - heroku java spring mvc hibernate app突然无法访问postgres db
- c++ - 具有递归和 std::enable_if 的模板特化
- python - 将 HTTPS 代理与 cURL 一起使用时出现 SSL 版本错误消息
- apache-spark - 使用 Spark 的 Parquet 文件大小