我正在使用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