How is QMdiArea supposed to be used?

First off, Martin Fitzpatrick, if you here and are reading this, THANK YOU!
I’ve been coding with PyQt for about a year or so before I came across this site last night I was surprised by how much I got for the price of your book… This is probably going to be my go-to resource for quite some time now.

That being said, I have a question about the use of QMdiArea. I couldn’t find anything on it in the books or anything on your site about it.
What I am trying to figure out is how to have a QMdiSubWindow be closeable but not delete itself when using a ui created in QtDesigner…

I am instantiating and subclassing the UI by doing:

class GUI(QMainWindow, MyUiDesignerCreatedObject):
    def __init__(self):

I created the QMdiArea in QtDesigner and had found that in the generated code of the compiled ui file, the QMdiSubWindows I made are being instantiated as QWidget but the Qt Documentation says that anything but QMdiSubWindows will get deleted on close which explains why I am not able to re-open any of my subwindows whenever I(or my users) close them…

Is there a workaround for this or is there something I am using improperly with PyQt or should I be creating my subwindows seperately as a seperate file instead of adding them as subwindows in QtDesigner which doesn’t seem to get added as a subwindow in the generated code of the compiled ui file?

The subwindows will reopen fine if I call
but self.my_mdi_area.subWindowList() returns an empty list until I run sel.my_mdi_area.addSubWindow(self.my_subwindow) but doing so will cause the subwindow to get deleted because of the whole being instantiated as QWidget and not QMdiSubWindow thing…

Also, adding the subwindow seems to also trigger a .show() signal for it when all I am trying to do is attatch all my subwindows.

The expected behavior is for the QMdiArea of my UI to have all its pre-designed subwindows attatched but defaulted as hidden and only show when triggered by an action…