In my case it is not instantiated for the entire duration of the program. Whenever required to write/read data a QSettings instance is created in a function as a local variable and then it goes out of scope.

One problem I noticed. Could this be a problem?
Here the instance created in func1() is still active when func2() creates another instance of QSettings for the same file path.

func1()
{
QSetting obj(dbase_path, QSettings::IniFormat);
...
func2();
}

func2()
{
QSetting obj(dbase_path, QSettings::IniFormat);
...
}