Если вы не хотите табулировать свои QDockWidgets с помощью решения brianz ', просто используйте removeDockWidget и addDockWidget взаимозаменяемо, чтобы установить видимый виджет-док.
например.
Если у вас есть док-станция 1 и док-станция 2:
При запуске:
g_Main->addDockWidget(Qt::LeftDockWidgetArea, dock1);
В некоторых действиях меню:
void MainWnd::ShowDock2(){
g_Main->removeDockWidget(dock1);
g_Main->addDockWidget(Qt::LeftDockWidgetArea, dock2);
dock2->show();
}
В другом действии меню:
void MainWnd::ShowDock1(){
g_Main->removeDockWidget(dock2);
g_Main->addDockWidget(Qt::LeftDockWidgetArea, dock1);
dock1->show();
}
Может быть упрощено, если вы унаследованы от QMainWindow и используете родительский класс для виджетов док-станции, чтобы автоматически отправлять сигналы при добавлении одного в док для удаления других из него