擅长:python、mysql、java
<p>公认的答案基本上是正确的,但在某些情况下,您需要一个接一个地运行多个qa应用程序,例如:</p>
<ul>
<li>单元测试</li>
<li>一个命令行工具,它不需要运行的X服务器(因此在启动时没有QApplication),但是如果用户的系统支持它,可以选择显示一个窗口</li>
</ul>
<p>最后我使用<code>multiprocessing</code>模块在一个单独的进程中启动每个<code>QApplication</code>,这样每个模块都独立于其他进程。在</p>
<pre><code>from multiprocessing import Queue, Process
class MyApp(Process):
def __init__(self):
self.queue = Queue(1)
super(MyApp, self).__init__()
def run(self):
app = QApplication([])
...
self.queue.put(return_value)
app1 = MyApp()
app1.start()
app1.join()
print("App 1 returned: " + app1.queue.get())
app2 = MyApp()
app2.start()
app2.join()
print("App 2 returned: " + app1.queue.get())
</code></pre>