【发布时间】:2017-06-26 19:08:41
【问题描述】:
我一直在阅读有关如何“正确”使用 QThreads 的信息,但我有点困惑。我一直在阅读,很多人一直在说,创建一个 QThread,但还要创建一个作为 QObject 的工作者。然后使用 movetoThread 将 Qobject 移动到 Qthread。
我只是有点困惑,因为我在 stackoverflow 上看到的所有示例都没有真正做到这一点。
如果这是我的代码:
class worker(QThread):
def __init__(self):
Qthread.__init__(self)
def run(self):
do_work()
a = 3
def do_work(self):
b = 2
self.emit(SIGNAL("work_done"),b)
class MyApp(QtGui.QMainWindow):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.worker_thread = worker()
self.connect(self.worker,SIGNAL('work_done'),self.done)
self.worker_thread.start()
def done(self,b)
print "the value from the worker is: " + str(b)
此代码是否会在与主线程分开的另一个线程中完成变量a 和b 的分配?还是因为我的 worker_thread 对象存在于主线程中,所以这不是真的?
【问题讨论】: