Seite 1 von 1

QMdiSubWindow schließen

Verfasst: 23. November 2018 11:25
von PoetikBiker
Hallo zusammen,

ich habe ein Problem mit dem Schließen eines QMdiSubWindow über den Close-Button des QMdiSubWindows.

Das Fenster schließt sich natürlich ordungsgemäß, aber leider bekomme ich das im MainWindow nicht mit. Diese ist allerdings notwendig, da das QMdiSubWindow nicht unbedingt geschlossen werden darf. Zudem sind einige Aufräumarbeiten fällig.

Meine Frage:
Wie kann ich das Schließen über den Close-Button (das kleine X im QMdiSubWindow) abfangen und selber im MainWindow darauf reagieren?

Ich hoffe, das meine Frage nicht zu dumm klingt....

Danke für eure Hilfe!

Re: QMdiSubWindow schließen

Verfasst: 23. November 2018 19:32
von Christian81
Wenn das QMdiSubWindow geschlossen werden soll, wird auch QWidget::close() des Widgets, welches Du mittels QMdiSubWindow::setWidget() gesetzt hast, aufgerufen. Wenn Du dort false zurücklieferst wird das Fenster nicht geschlossen.

Re: QMdiSubWindow schließen

Verfasst: 26. November 2018 09:39
von PoetikBiker
Christian81 hat geschrieben: 23. November 2018 19:32 wird auch QWidget::close() des Widgets...
Das ist richtig, hilft mir aber in meinem Fall nicht weiter.
Ich kann das Schließen zulassen oder nicht, soweit, so gut.

Mein Problem jedoch ist, dass das QMainWindow erfahren muss, dass ein QMDISubWindow geschlossen wurde, also NACHDEM es geschlossen wurde. Die Aufräumarbeiten können erst durchgeführt werden, wenn das Fenster weg ist.

Einfaches Beispiel: Ein Button soll disabled werden, wenn es kein aktives QMDISubWindow mehr gibt. Das kann ich in der close()-Methode noch nicht erledigen, da das Fenster da noch existiert.

Bestimmte Ressourcen oder Verhaltensweisen des Programs sind abhängig von der Anzahl der offenen QSubWidgets, sodass QMainWidget immer über die Änderung der Anzahl der QMDISubWindows Bescheid informiert werden muss.

Ergänzung:
auch das Signal subWindowActivated hilft mir nicht, da es vor der Zerstörung des QMDISubWindow gesendet wird. :x

Re: QMdiSubWindow schließen

Verfasst: 27. November 2018 07:01
von Christian81
Und was hindert Dich in dem überschriebenen Slot ein Signal abzusetzen dass im MainWindow verarbeitet wird?