Я пытаюсь запустить несколько учебных пособий pyqt5 в ноутбуке ipython, но у меня есть проблема, когда каждый второй раз я запускаю блок кода, в котором ядро подвергается принудительному перезапуску , Вот наименьший код, который вызывает проблему:закрытие pyqt-виджета в ipython-записной книжке без использования sys.exit()
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
Я бегу ноутбук Ipython3 и Python 3, а также pyqt5 и использование Ubuntu 14.04. Следует отметить, что эта проблема не возникает при запуске этого же кода через скрипт в терминале.
Некоторые другие несвязанные вопросы предположили, что моя проблема может быть вызвана тем, что sys.exit() запутался с экземпляром python (я надеюсь, что это правильный термин), а не просто закрывает мое приложение pyqt. Это происходит при первом запуске кода, поэтому во второй раз, когда он запускает ядро, принудительно перезапускается. Это проблема? и если да, то как мне обойти это?
Если требуется дополнительная информация, обратитесь к нам.
Я делаю то же самое прямо сейчас (играя с Qt под ноутбуком). Я заменил вызов 'sys.exit (app.exec _()) с помощью только' app.exec _() 'и, похоже, выполняет эту работу ... пока я не называю' QtCore.QCoreApplication.instance () .quit'. Точно так же, как и вы, я хотел бы более подробное объяснение того, что происходит. – Taar