QMdiSubWindow schließen

Alles rund um die Programmierung mit Qt
Antworten
PoetikBiker
Beiträge: 41
Registriert: 2. Mai 2012 13:43

QMdiSubWindow schließen

Beitrag von PoetikBiker » 23. November 2018 12:25

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!

Christian81
Beiträge: 7281
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QMdiSubWindow schließen

Beitrag von Christian81 » 23. November 2018 20:32

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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

PoetikBiker
Beiträge: 41
Registriert: 2. Mai 2012 13:43

Re: QMdiSubWindow schließen

Beitrag von PoetikBiker » 26. November 2018 10:39

Christian81 hat geschrieben:
23. November 2018 20: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

Christian81
Beiträge: 7281
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QMdiSubWindow schließen

Beitrag von Christian81 » 27. November 2018 08:01

Und was hindert Dich in dem überschriebenen Slot ein Signal abzusetzen dass im MainWindow verarbeitet wird?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung

Antworten