No description
Find a file
2025-10-05 14:06:28 +03:00
cmaketools fix library 2025-10-05 14:06:28 +03:00
example small cosmetic fix 2024-03-06 09:31:54 +03:00
.gitignore fix build for win 2024-07-03 10:56:12 +03:00
.gitlab-ci.yml fix build for win 2024-07-03 10:56:12 +03:00
CHANGELOG add menu 2020-07-07 12:04:37 +03:00
CMakeLists.txt new folders okn 2024-09-17 12:30:01 +03:00
logo.png Загрузить новый файл 2019-08-15 16:23:50 +03:00
main.cpp add examlpe widget 2020-07-07 12:52:30 +03:00
Readme.md close #5 close #4 close #2 2021-04-13 14:46:13 +03:00
saveall.cpp add upload service 2024-10-28 15:02:20 +03:00
saveall.h fix visibility 2024-07-16 14:25:37 +03:00

Данный мини класс сохраняет в QSettings параметры объектов виде дерева (от родителя к детям...):
Реализованы следующие виджеты/объекты

#include <QLineEdit>
#include <QDoubleSpinBox>
#include <QSpinBox>
#include <QCheckBox>
#include <QRadioButton>
#include <QComboBox>
#include <QGroupBox>
#include <QPushButton>
#include <QToolButton>
#include <QSlider>
#include <QAction>
#include <QTimeEdit>
#include <QMainWindow>
//...
SAVE_ALL_REGISTER_WIDGET(QLineEdit, setText, text);
SAVE_ALL_REGISTER_WIDGET(QSpinBox, setValue, value);
SAVE_ALL_REGISTER_WIDGET(QDoubleSpinBox, setValue, value);
SAVE_ALL_REGISTER_WIDGET(QSlider, setValue, value);
SAVE_ALL_REGISTER_WIDGET(QCheckBox, setChecked, isChecked);
SAVE_ALL_REGISTER_WIDGET(QRadioButton, setChecked, isChecked);
SAVE_ALL_REGISTER_WIDGET(QComboBox, setCurrentIndex, currentIndex);
SAVE_ALL_REGISTER_WIDGET(QToolButton, setChecked, isChecked);
SAVE_ALL_REGISTER_WIDGET(QGroupBox, setChecked, isChecked);
SAVE_ALL_REGISTER_WIDGET(QGroupBox, setTitle, title);
SAVE_ALL_REGISTER_WIDGET(QAction, setChecked, isChecked);
SAVE_ALL_REGISTER_WIDGET(QMainWindow, restoreGeometry, saveGeometry);
SAVE_ALL_REGISTER_WIDGET_ARGS(QMainWindow, restoreState, saveState, 0);

Пример сохранения/загрузки виджетов/объектов:

//метод сохранения
SaveAll::save(this); // this - главный объект того класса с которого нужно начать сохранение
//метот загрузки
SaveAll::load(this);  // this - главное объект того класса с которого нужно начать сохранение
//вторым параметром можно передать имя настроек, третим формат сохранения
//(QObject *obj, QString nameFile = defaultSettingsName(), QSettings::Format format = QSettings::Format::IniFormat)

Пример добавление нестандартного виджета:

//регистрация нового виджета, нужно передать имя класса, и методы установки, получения
SAVE_ALL_REGISTER_WIDGET(QLineEdit, setText, text);
//для случаев, когда метод установить/получить имеет дополнительные поля
SAVE_ALL_REGISTER_WIDGET_ARGS(QMainWindow, restoreState, saveState, 0)

Пример исключения виджета:

SAVE_ALL_UNREGISTER_WIDGET(QLineEdit)

Пример сохранения/загрузки переменных:

// пример сохранения
int test = 5;
SAVE_ALL_SAVE(test);
// пример загрузки
SAVE_ALL_LOAD(test)

Для того, чтобы объект не сохранялся, objectName() должен содеражать "SaveOff" или "_sof".