Решили сделать так, чтобы ваше приложение сохраняло свои настройки в ходе работы и использовало их в дальнейшем? Я предлагаю научится это делать при помощи консольного Qt приложения…
Создадим его в Qt Creator..
Перед использованием необходимо подключить библиотеку QSettings:
#include <QSettings>
Теперь можно создать объект настроек Qt:
QSettings *settings = new QSettings("settings.conf",QSettings::NativeFormat);
В качестве параметров указывается имя файла с настройками и их формат. Возможны также такие варианты:
QSettings ( const QString & organization, const QString & application = QString(), QObject * parent = 0 ) QSettings ( Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 ) QSettings ( Format format, Scope scope, const QString & organization, const QString & application = QString(), QObject * parent = 0 ) QSettings ( const QString & fileName, Format format, QObject * parent = 0 )
В нашем случае используется последний вариант.
QSettings::NativeFormat — самый «удобный» вариант хранения настроек. Для Windows — реестр, unix — текстовый файл…
QSettings::IniFormat — хранить в файле ini.
Я использую linux, так что хранить настройки в текстовом файле, считаю приемлемым вариантом…
Теперь посмотрим как добавлять и читать настройки.
Для установки настроек используется метод setValue:
settings->setValue("section/size", value);
Таким образом будет установлен такой синтаксис файла настроек:
[section] size=value
Как видите до знака «/» указывается секция, а после него параметр и значение..
Для записи настроек в файл:
settings->sync();
Для считывания вам понадобится открыть создать объект с настройками по вышеуказанному методу и воспользоваться методом value:
settings->value("section/size");
Будет возвращено значение из файла настроек. Возможен также вариант со стандартным значением:
settings->value("section/size", default);
Таким образом, если значение не установлено в файле настроек, будет возвращён default.
Для примера можно создать вот такую программу:
#include <QtCore/QCoreApplication>
#include <QSettings>
#include <QDebug>
int main(int argc, char *argv[]){
QCoreApplication a(argc, argv);
QSettings *settings = new QSettings("settings.conf",QSettings::NativeFormat);
settings->setValue("settings/value1",1); //устанавливаем значение value=1
settings->sync(); //записываем настройки
/* открываем файл с настройками для считывания */
QSettings *settings2 = new QSettings("settings.conf",QSettings::NativeFormat);
qDebug() << settings2->value("settings/value1",5).toInt(); //выводим на экран настройки из файла, если там ничего нет - 5
return a.exec();
}
Будет сгенерирован следующий файл настроек:
[settings] value1=1
В нашем случае будет выведено значение — 1
На этом всё..







