tl;dr - как сделать сохранение пользователського ввода в GUI между перезапусками программы?
------------
Пусть окно некоторой программы организовано в несколько вкладок с инпутами, в основном флажки, (радио)кнопки и поля ввода для текста и чисел, а также слайдеры и несколько таблиц. И положим, есть человек, который заполнив все необходимые поля и таблицы и уставив флажки, хотел бы видеть результаты своего труда и после перезапуска программы. Для решения такой банальной задачки есть минимум 3 способа:
1) Используя QSettings API, вручную сохранять и восстанавливать все неообходмые поля по отдельности. Учитывая что параметров, которые нужно таким образом сохранять/восстанавливать, весьма много, этот подход мне не нравится, во всяком случае, до тех пор, пока мне не платят за число строк.
2) Использовать QFormBuilder из libQtDesigner, с помощью методов load()/save() которого можно организовать некое подобие персистентности GUI в целом, во всяком случае в теории, на практике же вёрстанный мною GUI сохраняется неправильно, вложенные layout'ы 2-го и высших уровней «пропадают» и в результате контролы сидят друг на друге.
3) Написать (самому?) некий реккурентный траверс дерева виджетов с интроспекцией и сохранением/восстановлением нужных свойств в зависимости от типа виджета (у полей ввода - текст или числовое значение, у кнопок и чеков - состояние, у таблиц и списков - массивы строк и т.д.). Не то чтобы это было невыполнимо, но есть дела и поинтереснее.
Вероятно, за то время, которое я потратил на гуглёж и написание этого треда, я бы уже реализовал траверс, но тем не менее, в качестве последней попытки, интересуюсь здесь - есть ли ещё способы?