如何阻止 QSettings 更改设置文件中 key=value 对的顺序?

Bar*_*uda 5 ini qsettings qt5

在我的程序中,我有一个 Microsoft 的 INI 样式设置/配置文件,该文件是使用方便的类创建、编辑和存储的QSettings,但用户可以使用程序本身或她想要的任何文本编辑器手动编辑该gedit文件vim。键=值对出现的顺序很重要。问题是,每当我尝试在关闭时存储更改时,键=值对的顺序就会更改为随机顺序,并且似乎无法阻止QSettings更改它。为了便于说明,这里有一个配置文件示例:

[AlarmGroup1]
DateTimeNotInitialized=1
DateTimeStampError=2
ParametersMissingOrInconsistent=3
NotInitialized=4
FlashMemoryFatalError=5
NotIdentified=6
Run Code Online (Sandbox Code Playgroud)

更改为:

[AlarmGroup1]
ParametersMissingOrInconsistent=3
DateTimeNotInitialized=1
DateTimeStampError=2
NotInitialized=4
FlashMemoryFatalError=5
NotIdentified=6
Run Code Online (Sandbox Code Playgroud)

是否可以避免顺序的改变?为什么会有Qsettings这样的行为?

Big*_*ave 1

QSettings 的行为是这样的,因为它旨在解决的问题是保存/检索单个键/值对,而不是有序的对列表。

要解决这个问题,您需要: