Не могу разобраться с QSettings(чтением данных из ini)
Я создал класс Config для того, чтобы он читал ini файл и хранил все настройки, а потом их выдавал всем, кто в этом нуждается. Класс под синглтоном. В конструкторе пытаюсь прочитать этот файл, но ничего не читается :( Ошибок никаких не выдает , логи ниже(0000 это выдает settings.status(), 0 - ошибки нет, согласно http://doc.crossplatform.ru/qt/4.7.x/qsettings.html#Status-enum) Подскажите, что я делаю не так, почему у меня не читается?(в переменной DBHostName оказывается пустота)
linux,Qt 5.15.3 (GCC 11.2.0, 64 бита)
class Config
{
public:
static Config* Pointer();
private:
static Config* uniqPointer;
Config();
};
Config* Config::uniqPointer = 0;
Config* Config::Pointer()
{
if (uniqPointer == 0) {
uniqPointer = new Config();
}
return uniqPointer;
}
Config::Config()
{
QSettings settings( "./setting.ini", QSettings::IniFormat);
int a = settings.status();
std::cout << a;
settings.beginGroup( "GLOBAL" );
a = settings.status();
std::cout << a;
std::string DBHostNameIP = settings.value( "DBHostName","").toString().toStdString();
a = settings.status();
std::cout << a;
settings.endGroup();
a = settings.status();
std::cout << a;
std::cout << "\n Config Created\nDBHostNameIP\n ";
std::cout << DBHostNameIP << "\n\n\n\n";
std::cout << "\n DBPort\n ";
std::cout << DBHostNameIP << "\n\n\n\n";
}
код из main
Config* Conf = Config :: Pointer();
Вывод программы (логи) :
qwe
0000
Config Created
DBHostNameIP
DBPort
Содержимое ini файла
[GLOBAL]
DBHostNameIP = 192.168.0.22
DBPort = 228
DBName = sample
DBUserName = sample
DBPassword = sample
Ответы (1 шт):
как подсказал user7860670 решение - указать верный путь (полный) - /home/myUser/expl/myProj/setting.ini - проверить названия полей
Кстати, в самом ini файле можно писать значения полей как в ковычках, так и без, как с пробелом после(перед) символа "=", так и без.