Çarpıya basılınca messagebox açılması

amaçladığım şey programı kapatmak için çarpı tuşuna basıldığında bir messagebox açılması ve seçilen butona göre işlem yapması. bunu pyqt de nasıl sağlayabilirim?

from PyQt5.QtWidgets import *
from modül9 import *
import time

class deneme(QMainWindow):
    def kapa(self):
        message=QMessageBox.question(self,"Bilgi","Kapatıyo Muyuz?", QMessageBox.Yes | QMessageBox.No)
        if (message==QMessageBox.Yes):
            time.sleep(1)
            uygulama.closeAllWindows()
    def __init__(self):
        super().__init__()
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.kapa)

uygulama=QApplication([])
pencere=deneme()
pencere.show()
uygulama.exec()

Miras aldığınız QMainWindow sınıfı kapatılmadan önce closeEvent(self, event) metodunu çağırıyor. Bu metodun üstüne yazarak amacınıza ulaşabilirsiniz:

class deneme(QMainWindow):
    def closeEvent(self, event):
        message=QMessageBox.question(self,"Bilgi","Kapatıyo Muyuz?", QMessageBox.Yes | QMessageBox.No)
        if (message==QMessageBox.Yes):
            time.sleep(1)
            event.accept() # qt'ye eventin gerektirdiği işlemleri yapmasını söylüyoruz
            uygulama.closeAllWindows()
        else:
            event.ignore() # qt'ye eventin gerektirdiği işlemleri yapmamasını söylüyoruz

Allah razı olsun çok teşekkürler zaman ayırıp çözüm konusunda yardımcı olduğunuz için. (:

1 Beğeni