Посмотрите на QStackedWidget.Я просто начал использовать их сам.
У них есть "страницы", которые отображаются / скрываются при вызове.Например:
ui.stackedWidget->setCurrentIndex( 0 );
Например, когда отображается индекс 0, страницы 1,2,3 ... скрыты внизу.
Я подключенсвязке переключателей, которые при нажатии отображают соответствующую страницу / виджеты и скрывают остальные «внизу».Подключение просто:
connect( button_group_ptr, SIGNAL( buttonClicked( int ) ), ui.stackedWidget, SLOT( setCurrentIndex( int ) ) );
connect( ui.stackedWidget, SIGNAL( currentChanged( int ) ), this, SLOT( stackedWidgetChanged( int ) ) );