Lies mal die Doku für QMdiArea::addSubWindow: das übergebene Widget ist
nicht das Subwindow selbst, das wird nochmal gewrappt. Deshalb kriegst
du das auch nicht direkt wieder zurück über den Getter.
Zur zweiten Frage: Ja, das geht, die Layouts haben Funktionen um Widgets
zu entfernen und Widgets kann man auch verstecken. Die generelle
Vorgehensweise ist aber, das nicht zu tun. Entweder man hat komplett
neue UI, die man bei einem bestimmten Ereignis aktivieren will; dann
verwendet man ein QTabWidget oder ein QStackedWidget. Oder man will nur
ein, zwei Felder deaktivieren oder aktivieren; dann deaktiviert man die
Elemente einfach (setEnabled(false)), versteckt sie aber nicht, das ist
für den Benutzer viel übersichtlicher, weil nicht ständig alles
flackert. Optimalerweise gibt's noch einen Tooltip, warum das Feld
deaktiviert ist.
Viele Grüße,
Sven