Как внутри класса описывающего окно сделать выбор показывать окно или нет?
Внутри класса описываю функции окна.
В определенный момент происходит проверка параметра, в результате которого выводится диалоговое окно с вопросом показывать окно или нет (если да, то нужно продолжить работу и отобразить окно).
Сделал упрощенный пример:
ui_one_button.py:
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(502, 180)
MainWindow.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight)
MainWindow.setStyleSheet("background-color: rgb(254, 214, 188);")
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
main_one_button.py:
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QMessageBox
from ui_one_button import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
if True:
msg_box = QMessageBox.warning(
self,
"Warning!",
"Do you want to show main window!?",
buttons=QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
)
if msg_box == QMessageBox.StandardButton.No:
print("Clicked No! Not Showing Window!")
return
print("Clicked Yes! Showing Window!")
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
print("Wow!")
sys.exit(app.exec())
В примере перед открытием главного окна выводится QMessageBox
с вопросом.
Как мне оформить это дело так, чтобы при нажатии кнопки No
у меня не произошло отображения главного окна, но вся программа от этого не закрылась, для примера сработал print("Wow!")
?