Pyqt5: closeEvent не завершает приложение, если используется витой реактор - PullRequest
0 голосов
/ 19 сентября 2018

Метод closeEvent выполняется (я вижу благодаря журналу), appWindow скрывается, но приложение не заканчивается: остается открытым в консоли, где оно было запущено.

Код:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
app = QApplication(sys.argv)
import qt5reactor
qt5reactor.install()
from twisted.internet import reactor
from twisted.python import log


class AppWindow(QMainWindow):

    def __init__(self, reactor):
        super().__init__()
        self.reactor = reactor
        self.setObjectName('AppWindow')
        self.initUI()

    def initUI(self):
        self.resize(1200, 700)
        self.show()

    def closeEvent(self, e):
        log.msg("Close app event")
        self.reactor.stop()
        e.accept()

# Create window and run reactor
log.startLogging(sys.stdout)
win = AppWindow(reactor)
reactor.run()
...