Partage
  • Partager sur Facebook
  • Partager sur Twitter

PyQt QDialog catpure pas CloseEvent ...

    22 juillet 2014 à 21:56:22

    Bonjour !

    J'aimerais réaliser un Dialog qui capture un closeEvent de la fenetre principale et lorsque l'on appui sur un bouton 'btn_yes' on accepte le closeEvent de la fenetre principale, qui se ferme ... Le dialog étant modal !

    Cela j'arrive à le faire pas de souci, cependant dans ma fenetre principale le temps s'écoule, il y a une barre de progression notrament. Et lorsque je veux quitter mon programme mon dialog s'ouvre, ok, mais il 'freeze' mon programme... la barre de progression ne bouge plus. cependant si je quitte le dialog sans cliquer sur le 'btn_yes' cela reprend, mais comme le programme c'est mis en pause du temps a été perdu.

    Pour pallier ce problème j'ai utilisé la fonction .show() au lieu de .exec_ pour afficher mon dialog, mon programme continu bien à tourner mais par contre si je clic sur 'btn_yes' rien ne se passe, la fenetre principale ne se ferme pas :S Que faire ?

    Voici l'exemple avec show(), qui permet donc de faire tourner la fenetre principale mais ne permet plus de la fermer.

        def closeEvent(self, event):
           
            self.ok_v = False
            self.Dialog_quit = QDialog()
            ui_quit = Ui_quit()
            ui_quit.setupUi(self.Dialog_quit)
            QObject.connect(ui_quit.btn_yes,SIGNAL("clicked()"),self.ok)
            self.Dialog_quit.show() ### exec_() -> show()
            
            if self.ok_v:
                event.accept()
            else:
                event.ignore()
            
            # DIALOG
        def ok(self):
            self.ok_v = True

    Merci d'avance pour une eventuelle réponse.

    -
    Edité par aurele1 22 juillet 2014 à 21:56:50

    • Partager sur Facebook
    • Partager sur Twitter

    PyQt QDialog catpure pas CloseEvent ...

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown