是否可以在退出上一个QApplication实例后创建和使用新的QApplication实例?
答案 0 :(得分:3)
是的,您可以在销毁上一个实例后创建新的QApplication。我在Windows中使用PyQt4验证了这一点。下面的程序显示一个空窗口。关闭第一个窗口后,第一个QApplication将被销毁,第二个QApplication将被创建,然后显示第二个空白窗口。请注意,没有del app
语句我遇到了问题。这相当于在C ++中的QApplication上使用delete
。只需确保在堆上而不是堆栈上分配QApplication实例。
from PyQt4 import QtCore, QtGui
import sys
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.show()
app.exec_()
del app # force garbage collection of the first QApplication
app = QtGui.QApplication(sys.argv)
window = QtGui.QWidget()
window.show()
app.exec_()
答案 1 :(得分:0)
看起来这个问题讨论了:
Problems with Multiple QApplications
您可以创建一个具有自己的窗口的新线程,而不是创建新的QApplication实例,并将其视为与单个程序中不同的QApplication一样。