擅长:python、mysql、java
<p>对<code>startThread</code>的第二个调用取消了第一个调用。线程没有时间打印“hello”,您再次调用它要求打印“hi”。
您可以在<code>QThread.start()</code>之后调用<code>QThread.wait()</code>,等待线程完成。你知道吗</p>
<p>一个工作示例(同样,具有正确的标识):</p>
<pre><code>class WorkerThread(QThread):
def _init_(self, mw):
super(WorkerThread, self)._init_(mw)
self.gameName = ""
def setGameName(self, currGameName):
self.gameName = currGameName
def run(self):
print self.gameName
class GG(object):
workerThread = WorkerThread()
def startThread(self,stringer):
self.workerThread.setGameName(stringer)
self.workerThread.start()
self.workerThread.wait()
harro = GG()
harro.startThread("hello")
harro.startThread("hi")
</code></pre>
<p>此示例将在线程运行时冻结用户界面。
所以对于更复杂的任务,应该使用signals和slots机制。你知道吗</p>