Есть ли простой способ сохранить расположение и размеры вдов в доках в настройках с 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);