Воссоздайте QApplication после выхода из предыдущего экземпляра. - PullRequest
2 голосов
/ 21 июля 2011

Возможно ли создать и использовать новый экземпляр QApplication после выхода из предыдущего?

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

Да, вы можете создать новое приложение QApplication после уничтожения предыдущего экземпляра.Я проверил это в Windows, используя PyQt4.Программа ниже отображает пустые окна.После закрытия первого окна первое приложение QApplication уничтожается, и создается второе приложение QApplication, которое затем отображает второе пустое окно.Обратите внимание, что у меня были проблемы без оператора del app.Это было бы эквивалентно использованию delete в вашем приложении QApplication на C ++.Просто убедитесь, что вы выделили экземпляр 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_()
0 голосов
/ 21 июля 2011

Похоже, этот вопрос обсуждает, что:

Проблемы с множественными приложениями

Вместо создания нового экземпляра QApplication вы можете создать новый поток с его собственным окном и обрабатывать его так же, как если бы вы работали с другим QApplication из одной программы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...