我开始学习PyQt5和Qthread,并尝试做一个简单的QThread实现,我知道这很明显,但我真的不明白为什么它不工作
我的代码:
from PyQt5 import QtCore
class WorkingThread(QtCore.QThread):
def __init__(self):
super().__init__()
def run(self):
print(" work !")
class MainWindow(QtCore.QObject):
worker_thread = WorkingThread()
def engage(self):
print("calling start")
self.worker_thread.start()
if __name__ == "__main__":
main = MainWindow()
main.engage()输出:
调用start
进程已完成,退出代码为0
别说“工作!”已打印
发布于 2018-08-07 08:34:34
Qt的许多元素都需要一个事件循环才能正常工作,这就是QThread的情况,因为在这种情况下没有图形用户界面它适合创建一个QCoreApplication:
from PyQt5 import QtCore
class WorkingThread(QtCore.QThread):
def run(self):
print(" work !")
class MainWindow(QtCore.QObject):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.worker_thread = WorkingThread()
def engage(self):
print("calling start")
self.worker_thread.start()
if __name__ == "__main__":
import sys
app = QtCore.QCoreApplication(sys.argv)
main = MainWindow()
main.engage()
sys.exit(app.exec_())https://stackoverflow.com/questions/51716606
复制相似问题