首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSettings:可以禁用组吗?

QSettings:可以禁用组吗?
EN

Stack Overflow用户
提问于 2014-08-15 06:20:12
回答 2查看 726关注 0票数 0

我正在使用QSettings编写一个.ini文件,该文件将用作我的应用程序配置文件。只有一个问题:

QSettings会将组名常规添加到文件的顶部。

我这样设置文件:

代码语言:javascript
复制
QSettings settings(QApplication::applicationDirPath() + fileName, QSettings::IniFormat);

然后像这样写:

代码语言:javascript
复制
settings.setValue("some_setting", theNumber);

但是,我最终提供这些数据的程序不能处理General标签。虽然手动从文件中删除General对我来说肯定是一个选择,但我想知道是否可以让QSettings停止这样做。

我怀疑这种行为是由于指定了QSettings::IniFormat造成的。但是,我没有看到任何其他选项会告诉它停止指定组。

你知道我该怎么做吗?

EN

回答 2

Stack Overflow用户

发布于 2014-08-15 07:28:07

.ini文件格式是基于微软从视窗实现的事实上的标准。它需要节的存在。

无论您将文件提供给哪个应用程序,都不会真正实现.ini文件格式,而是实现其他格式。

您很可能根本不应该使用QSettings,而是手动实现该功能。这应该不是问题,因为您这样做只是为了将数据“馈送”到其他软件。你不需要再读一遍。您可以将您的设置存储在常规QSettings中,然后将它们导出到文本文件中,以供该应用程序阅读。

票数 4
EN

Stack Overflow用户

发布于 2014-08-15 23:35:13

是时候编写您自己的QSettings文件格式了。

“文件格式”是一对带签名的两种方法:

代码语言:javascript
复制
bool readXmlFile(QIODevice &device, QSettings::SettingsMap &map);
bool writeXmlFile(QIODevice &device, const QSettings::SettingsMap &map);

第一个应该从device填充map,第二个应该将map转储到device。你可以在那里使用任何你想要的东西-- xml,没有[general]组的纯文本文件等等。

在此之后,您应该使用QSettings::registerFormat函数注册新的闪亮格式。

以下是文档:http://qt-project.org/doc/qt-5/qsettings.html#registerFormat

祝好运。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25318467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档