Скрипт выполняется только раз?

В процессе разучивания PyQt5 написал небольшой интерфейс, проблема в том что запускается это дело только 1(ОДИН!) раз и лечится только перезагрузкой системы, но, опять же, на один раз, как быть?
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp


class mainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # добавляем панель меню
        bar = self.menuBar()

        # добавляем на панель меню кнопки
        fileBar = bar.addMenu('Файл')
        helpBar = bar.addMenu('Помощь')
        aboutBar = bar.addMenu('О программе')
        exitBar = bar.addMenu('Выход')

        # описываем к кнопкам действия
        buildGraphAction = QAction('Построить граф', self)
        buildGraphAction.setShortcut('Ctrl+G')

        exitAppAction = QAction('Закрыть приложение', self)
        exitAppAction.setShortcut('Ctrl+E')

        # добавляем к кнопкам действие
        fileBar.addAction(exitAppAction)

        # события
        #exitAppAction.triggered.connect(self.exitTrigger)

        self.setWindowTitle("ОКНО")
        self.resize(600, 400)

        self.show()

    def exitTrigger(self):
        qApp.quit()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = mainWindow()
    sys.exit(app.exec_())
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Alex1202
Изучаю Sublime Text 3
В вашем скрипте нет цикла while, который отслеживает события (Event_loop, Mouse_event и т п). В windows можно закрыть процесс python через диспетчер задач, Но если при закрытии приложения процесс остается, значит функция exitTrigger не задействована. Она также должна находиться в цикле while как раз на месте

# события
#exitAppAction.triggered.connect(self.exitTrigger)

вывод: скрипт запускает main_window, но закрыть его нечем ))) используйте цикл с событиями
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы