Merhaba dünde bahsettiğim üzere kodunuzu düzgün paylaşmamışsınız ki düzgün paylaşsanız dahi bazı parçalar eksik olcağı için cevaplamamız zor olur bu mesajıma yanıt vermeden önce şu linki okursanız sevinirim.
https://forum.yazbel.com/t/soru-sorarken-sikca-dusulen-hatalar/14968
Kodunuzu çalıştıramadığım için sorunu anlamadım. Ama ilk bakıştada çok büyük hatalar var bir scriptte birden fazla QApplication olması başta olmak üzere.
Sizinle kapatılmaya çalışıldığında onay isteyen bir kod paylaşıyorum.
import sys
from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QMessageBox, QMainWindow
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
main_layout = QVBoxLayout()
close_button = QPushButton("Close")
close_button.clicked.connect(self.close)
main_layout.addWidget(close_button)
main_widget = QWidget()
main_widget.setLayout(main_layout)
self.setCentralWidget(main_widget)
self.setWindowTitle("MyWindow")
self.show()
def closeEvent(self, event):
msg_box = QMessageBox()
msg_box.setIcon(QMessageBox.Warning)
msg_box.setWindowTitle("Close")
msg_box.setText("Are you sure you want to close?")
msg_box.setStandardButtons(QMessageBox.Yes | QMessageBox.No)
msg_box.setDefaultButton(QMessageBox.No)
response = msg_box.exec_()
if response == QMessageBox.Yes:
event.accept()
else:
event.ignore()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
Bu kısmı anlamadım açıklar mısınız?