-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainMenu.py
59 lines (48 loc) · 2.22 KB
/
mainMenu.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from ui_mainmenu import Ui_MainMenu
from ui_theorydialog import Ui_TheoryDialog
from mainWindow import MainWindow
from PyQt6.QtWidgets import QApplication, QMainWindow, QDialog, QMessageBox
class MainMenu(QMainWindow, Ui_MainMenu):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.theory_dialog = None
self.btn_create.clicked.connect(self.open_hasse)
self.btn_theory.clicked.connect(self.open_theory)
# Переопределенный метод класс QWidget - обработчик закрытия
def closeEvent(self, event): # Закрытие главного меню (приложения целиком)
reply = QMessageBox()
reply.setIcon(QMessageBox.Icon.Question)
reply.setWindowTitle("Подтверждение закрытия")
reply.setText("Вы уверены, что хотите закрыть приложение?")
reply.setStandardButtons(QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No)
reply.setDefaultButton(QMessageBox.StandardButton.No)
ret = reply.exec()
if ret == QMessageBox.StandardButton.Yes:
event.accept()
for window in QApplication.topLevelWidgets(): # Закрытие всех дочерних окон
window.close()
else:
event.ignore()
def open_hasse(self):
'''
Открыть окно приложения с построением диаграммы Хассе.
'''
window = MainWindow(self)
window.window_closed.connect(self.open_mainmenu)
window.show()
self.setVisible(False)
def open_mainmenu(self):
'''
Открыть начальное окно приложения.
'''
self.setVisible(True)
def open_theory(self):
'''
Открыть окно приложения со справочными материалами по теории множеств.
'''
if self.theory_dialog is None:
self.theory_dialog = QDialog()
ui = Ui_TheoryDialog()
ui.setupUi(self.theory_dialog)
self.theory_dialog.show()