a.setQuitOnLastWindowClosed(false);
3 Réponses :
Je ne suis pas sûr, mais je pense que lorsque QMessageBox a fermé qu'il tente de revenir au centre de son parent (votre mainwindow) de la sorcière est cachée. Cette opération échoue et le système jette une exception. P>
Essayez cette fonction: void mainwindow :: showMessagebox () {qmessagebox :: information (this, "bonjour,", "world!", Qmessagebox :: ok); this-> spectacle (); } code> with Out Set
a.sequittonlastwindowfint (faux); CODE> S'il ne va pas écraser - cela signifie qu'il ne pouvait pas retourner concentré sur MainWindow et une exception lancée.
Pass To QMessageBox :: Information (...) Code>
NULL code> au lieu de
Ceci code>. MessageBox n'a maintenant aucun parent, mais l'application se termine.
J'ai réimplenté focalisateur code> - QMessagoBox n'essaie pas de retourner la mise au point.
Le problème semble être le suivant: Lorsque la boîte de dialogue est fermée, l'application pense qu'il n'y a plus de fenêtres ouvertes ( Ceci devrait imprimer le message: p> Vous pouvez définir la demande comme parent de la fenêtre p> p> sequitonlastwindowflosed code> fait référence aux fenêtres de niveau supérieur visibles), donc il quitte donc. Le destructeur de votre fenêtre n'est pas appelé parce que vous ne supprimez jamais l'objet!
Malheureusement, vous ne pouvez pas définir l'application pour être le parent MAINWINDOW car les relations parent-enfant exigent que le parent est issu de qwidget; Qapplication vient de qObject pas qwidget.
Essayez simplement ce qui suit - Mettez ceci: à votre: p> Cela devrait aider! P> p>
Super! Résolu mon problème, merci!