我正在为QGIS编写一个Python插件(C ++应用程序,使用PyQt4为插件提供Python接口)。我从QThread
开始QDialog
使用类似下面代码的内容,其中Worker
是QObject
。这样可以正常工作,除非我在线程完成之前隐藏QDialog
执行(使用对话框关闭按钮),线程暂停。如果再次show()
对话框,则线程将恢复。
为什么会这样?当对话框关闭时,如何让线程继续运行?
thread = QtCore.QThread(self)
worker = Worker()
worker.moveToThread(thread)
worker.progress.connect(progress.setValue)
thread.started.connect(worker.run)
worker.finished.connect(self.finish)
worker.finished.connect(thread.quit)
worker.finished.connect(worker.deleteLater)
thread.finished.connect(thread.deleteLater)
thread.start()
self.thread = thread
self.worker = worker