And have you thought about using QStackedWidget? Thus you don't have to close() and hide() your windows and can stay with one main window.