На мой взгляд, QMainWindow дает вам хорошее начало.Вы можете создавать DockWidgets и управлять ими по всему вашему центральному виджету, а также легко добавлять панели состояния и панели инструментов.
Класс QDockWidget уже обрабатывает параметры скрытия / показа dock / undock, поэтому все, что вам нужно сделать, - это сделать самостоятельно.widget.
Также, если вы хотите, чтобы виджеты были скрываемыми, вы можете заглянуть в QSplitter, который позволяет отображать два виджета, по одному с каждой стороны, и изменять их размер.По умолчанию они складные.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ (для ответа на вопрос с комментариями):
Вы можете использовать QSettings , чтобы сделать это,Это позволяет вам сохранить любые настройки, которые вы хотите в системном каталоге.
Вы делаете это так:
QSettings settings;
settings.setValue("editor/wrapMargin", 68);
и получить его обратно:
int margin = settings.value("editor/wrapMargin").toInt();
Надеюсь, это поможет.