Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В чем новизна? Что есть у Вас чего нет в официальной документации?Осмелюсь спросить: Вы читали пост целиком? :)
Задав в поиске на хабре «QSettings» и нашлось больше 5 тем не включая вашу.Если Вы все же читали пост целиком (ну или хотябы чуть дальше середины), то могли бы заметить что все те статьи, что выдает поиск, никак не касаются вопросов затронутых здесь. Там применяется простой метод использования QSettigns. Здесь же я описываю, метод работы с конфигами и его реализацию, которая не привызанна именно к QSettings, я же написал в статье:
В данной реализации, класс QSettings, используется исключительно для кроссплатформенного доступа к настройкам. Конечно же по желанию QSettgins может быть заменен любым другим механизмом, например SQLite.
compile-time check
* во первых слишком многословно, т.е. информация дублируется (key1 -> «key1», и т.д.).Тут стоит пояснить поподробнее. Если первый пункт («многословность») можно отнести чисто к взгляду с эстетической точки зрения, то второй пункт затрагивает некоторые практические моменты.
…
* во вторых при достаточном количестве ключей и секций, велика вероятность, что придется прописывать константы для всех комбинаций, что не очень удобно.
…
//Settings.h
class Settings{
...
public:
enum Section{
HTTP,
FTP
};
enum Key{
Password
};
....
};
//Settings.h
class Settings{
public:
typedef const char * Section;
typedef const char * Key;
static Section HTTP;
static Section FTP;
static Key Password;
...
};
//Settings.cpp
Settings::Section Settings::HTTP = "HTTP";
Settings::Section Settings::FTP = "FTP";
Settings::Key Settings::Password = "Password";
//Settings.h
class Settings{
...
public:
enum Section{
HTTP,
FTP
};
enum Key{
URI,
Login,
Password
};
....
};
//Settings.h
class Settings{
public:
typedef const char * Section;
typedef const char * Key;
static Section HTTP;
static Section FTP;
static Key URI;
static Key Login;
static Key Password;
...
};
//Settings.cpp
Settings::Section Settings::HTTP = "HTTP";
Settings::Section Settings::FTP = "FTP";
Settings::Key Settings::Password = "URI";
Settings::Key Settings::Password = "Login";
Settings::Key Settings::Password = "Password";
Один из методов работы с конфигурационными файлами в С++ (Qt)