QThread.isFinished在连接到finished()信号的槽中返回False

3
我有一个QThread,它发出了finished()信号,但它的isFinished()返回False。为什么会这样?如何知道什么时候isFinished将开始返回True?
from __future__ import print_function
from PySide import QtCore, QtGui

qapp = QtGui.QApplication([])
worker_thread = QtCore.QThread()
worker_thread.start()
worker_thread.quit()

def fin():
    print('isFinished:', worker_thread.isFinished())
worker_thread.finished.connect(fin)
QtCore.QTimer.singleShot(200, qapp.quit)
qapp.exec_()

有时它会返回true,但大多数情况下输出:

isFinished: False

另一个SO问题的答案(QThread emits finished() signal but isRunning() returns true and isFinished() returns false)表明应该像这样:
  1. 此时,isFinished()应该开始返回true,而isRunning()返回false。
  2. 内部发出finished()信号。
  • py 2.7.4
  • PySide 1.1.2
  • Qt 4.8.2
也已使用PyQt4进行了测试。
1个回答

1

是的,看起来是这样。我认为你可以将这个答案标记为正确的。 - László Papp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接