退出上一个实例后重新创建QApplication

时间:2011-07-21 15:19:41

标签: c++ qt

是否可以在退出上一个QApplication实例后创建和使用新的QApplication实例?

2 个答案:

答案 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一样。