擅长:python、mysql、java
<p>认为总是需要使用多线程来处理这样的事情是错误的。</p>
<p>如果您可以将长期运行的任务分解为一系列的小步骤,那么您所需要做的就是确保所有挂起的事件都得到足够频繁的处理,以便GUI保持响应。这可以通过使用<a href="https://qt-project.org/doc/qt-4.8/qcoreapplication.html#processEvents" rel="noreferrer">processEvents</a>从</em>主GUI线程中的<em>安全地完成,如下所示:</p>
<pre><code> for i in range(1, 101):
self.progressBar.setValue(i)
QtGui.qApp.processEvents()
time.sleep(0.1)
</code></pre>
<p>考虑到它的简单性,在选择更重的解决方案(如多线程或多处理)之前,至少应该考虑一下这种技术。</p>