我正在使用QSettings试图找出INI是否有效(使用status()来检查)我制作了一个有目的的无效INI文件并加载它。第一次调用代码时,它返回无效,但每次都返回有效。这是我的代码中的错误?设置不同的结果
Q
设置不同的结果
3
A
回答
0
检查你的代码,你需要在返回之前删除文件对象。
除此之外,您的代码使用QSettings::QSettings(fileName, format)
c'tor打开ini文件。该呼叫以功能QConfFile::fromName
结束(在qsettings.cpp中执行)。当我读到它时(有几个宏以及我决定不遵循),如果文件已经打开(即上次没有删除该对象),则文件不会重新打开。因此,状态将在第二时间确定。
1
这是一个Qt bug由一些全局状态引起的。请注意,不管您是否在您的QSettings对象上调用delete
,都应该发生结果差异。下面简要总结了第一次运行会发生什么情况:
- 结果代码设置为
NoError
。 - 全局缓存进行检查,看看你的文件存在
- 您的文件不存在,第一次,所以它的上线
qsettings.cpp
1530(QT-4.6.2) - 解析导致错误解析并设置结果代码(请参见
qsettings.cpp
第1552行)。 - 返回错误结果代码。
而第二次运行是不同的:
- 结果代码被设置为
NoError
。 - 检查全局缓存,您的文件存在。
- 检查文件大小和时间戳以查看文件是否已更改(请参见
qsettings.cpp
第1424行)。 - 返回结果代码,这恰好是
NoError
- 文件被认为已被正确解析。
相关问题
- 1. ODE放置给出不同的结果
- 2. NSCalendar设置firstWeekDay到星期一,但结果是不同的
- 3. 空VS默认设置为空 - 让不同的结果
- 4. 存储设置在不同的类中使用结果
- 5. 为华廷跨越不同的结果时,断点设置
- 6. 在会话中设置user_data给出不同的结果
- 7. 如何在Delphi函数中设置不同的结果值?
- 8. runnableFuture设置结果
- 9. 不同的结果
- 10. 不同的结果
- 11. 不同的结果
- 12. 不同的结果
- 13. 不同的结果
- 14. 不同的结果
- 15. 不同的结果
- 16. 不同结果
- 17. IAuthorizationFilter的设置结果
- 18. MySql不同结果的一组不同的结果
- 19. Moq对于不同的IEnumberable参数设置返回相同的结果
- 20. Apple CLGeocoder,MKLocalSearch结果与设备映射结果不同
- 21. 设置NSDateComponents结果不正确NSDate
- 22. nunit-console测试从不同位置产生不同的结果
- 23. 将SQL查询结果返回设置为具有不同值的相同ID
- 24. Django查询设置结果
- 25. 函数结果设置
- 26. 设置AVG结果AS列
- 27. 不同系统上的不同结果
- 28. C# - 从SQL结果结合匹配的结果设置
- 29. 同样的计算结果如何产生不同的结果
- 30. FOSElasticaBundle结果与Doctrine结果不同吗?
你能粘贴你的代码和文件吗? – 2010-02-18 20:31:17
是...这是方法: http://pastebin.ca/1802323 和文件是: http://pastebin.ca/1802322 – eyecreate 2010-02-19 03:39:40