2011-04-03 246 views
4

我试着去创建ini文件,将举行我的配置数据,我有singletone类 在设定QSettings对象是这样的:Qt QSettings尝试创建ini文件,但没有创建为什么?

... #DEFINE CONFIG_FILE_NAME "myconfig.ini" 

m_pSettings = new QSettings(QDir::currentPath()+"/"+CONFIG_FILE_NAME,QSettings::IniFormat); 

这accourding文档,但是当我看到在我的应用程序目录,有没有创建myconfig.ini文件,什么即时通讯做错了?

+0

你确定代码被调用吗?你确定你正在寻找正确的目录吗? – Mat 2011-04-03 11:23:01

+0

是的确定它叫,我有断点和日志打印,显示th代码调用和目录是 – user63898 2011-04-03 11:29:01

+0

你试图设置任何变量,然后销毁'm_pSettings'? – 2011-04-03 11:57:43

回答

11

我相信为了强制QSettings文件出现,您需要设置至少一个值,然后调用sync()方法。看看下面的例子会为你工作:

QSettings* settings = new QSettings(QDir::currentPath() + "/my_config_file.ini", QSettings::IniFormat); 
settings->setValue("test", "value"); 
settings->sync(); 

希望这会有所帮助,至于

+0

...或在堆栈上创建QSettings对象并让dtor进行同步。 – 2011-04-03 15:38:39

-1

我不认为“/” + CONFIG_FILE_NAME返回预期的结果。可能是你的问题的原因.. 无论如何,运算符+()存在于QString类中,所以QDir :: currentPath()+“/my_config_file.ini”必须正常工作。