如何停止更改设置文件中键=值对顺序的Q设置



在我的程序中,我有一个Microsoft INI风格的设置/配置文件,该文件是使用方便的QSettings类创建、编辑和存储的,但用户可以使用程序本身或她想要的任何文本编辑器(如geditvim)手动编辑该文件。键=值对出现的顺序很重要。问题是,每当我试图在关闭时存储更改时,密钥=值对的顺序都会变为随机顺序,似乎不可能阻止QSettings更改它

[AlarmGroup1]
DateTimeNotInitialized=1
DateTimeStampError=2
ParametersMissingOrInconsistent=3
NotInitialized=4
FlashMemoryFatalError=5
NotIdentified=6

更改为:

[AlarmGroup1]
ParametersMissingOrInconsistent=3
DateTimeNotInitialized=1
DateTimeStampError=2
NotInitialized=4
FlashMemoryFatalError=5
NotIdentified=6

有可能避免秩序的改变吗?Qsettings为什么会这样?

QSettings之所以如此,是因为它旨在解决的问题是保存/检索单个键/值对,而不是有序的对列表。

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

  • 从程序中删除特定订单的要求
  • 编写自己的QSettings
  • 编写一个"自定义存储格式提供程序"以传递到QSettingshttp://doc.qt.io/qt-5/qsettings.html#registerFormat

相关内容

  • 没有找到相关文章

最新更新