Есть ли простой способ сохранить расположение и размеры вдов в доках в настройках с Qt?

У меня есть главное окно с несколькими внутренними закрепляемыми окнами. Я могу перемещать, изменять размер и перестраивать эти закрепляемые окна. После закрытия и повторного открытия программы, я хочу, чтобы ходы, размеры и повторная привязка были сохранены. Есть ли простой способ реализовать это? Я думаю, что это будет использовать настройки. Но какая информация должна быть сохранена в настройках. И как установить макет по умолчанию для всех этих окон док-станции? Когда вы нажимаете кнопку действия, она может быть восстановлена. Благодарю.

2 ответа

Решение

К сожалению, нет, нет встроенного способа сделать это.

Вам нужно будет перебрать все свои панели инструментов и закрепляемые виджеты и записать их позиции (и, возможно, их видимость) в файл. Чтобы восстановить, вы можете прочитать этот файл и установить свои позиции на основе того, что вы прочитали.

Хорошей новостью является то, что, как только вы настроите такую ​​систему, сделать макет по умолчанию легко - переместите все ваши виджеты туда, куда вы хотите, а затем сохраните файл макета, как вы делали пользовательские макеты выше. Вы даже можете иметь несколько макетов, если они все получают отдельные файлы.

Проверьте QMainWindow::saveState/restoreState. Это делает именно это.

Сохранить:

QSettings settings;
settings.setValue("DOCK_LOCATIONS",this->saveState(SOME_VERSION_DEFINE));

Восстановить:

QSettings settings;
this->restoreState(settings.value("DOCK_LOCATIONS").toByteArray(),SOME_VERSION_DEFINE);
Другие вопросы по тегам