Thanks for your answers.
Just one more question if you don't mind. 
I am using QMainWindow as a main container, then I add a QStackedLayout as a centralwidget.
Code:
_stackedLayout = new QStackedLayout ( ui->centralwidget );
When I click on an icon, I show its widget as follow:
Code:
void MainWindow::moveToScreen ( QWidget * screen )
{
if ( screen != NULL )
{
if ( _stackedLayout->indexOf ( screen ) < 0 )
{
_stackedLayout->addWidget ( screen );
}
_stackedLayout->setCurrentWidget ( screen );
}
}
So my question is how can I modify these codes to become a stackable windows as your hint?
Thanks.