再用pyqt5的时候经常因为运行时会导致程序卡顿二用到QThread,但同时也会遇到一个问题就是:QThread: Destroyed while thread is still running(线程在运行时被销毁)
这时你可以看一看你是不是定义了一个局部变量而出现:
from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QTextEdit
class main(QTextEdit):
def __init__(self):
super().__init__()
def keyPressEvent(self, event):
t = QThread()
t.start()
这是一个实例这个原因是这个keyPressEvent类运行完成后QThread也会跟着销毁,但是他还没有执行完
t = QThread(self)
应该为
self.t = QThread(self)
如果仍不能解决那么可以考虑添加一个容器:
from PyQt5.QtCore import QThread
from PyQt5.QtWidgets import QTextEdit
class main(QTextEdit):
def __init__(self):
super().__init__()
self.threadList = []
def keyPressEvent(self, event):
self.t = QThread()
self.threadList.append(self.t)
self.threadList[-1].start()