【发布时间】:2010-12-22 04:02:33
【问题描述】:
我正在编写一个 Qt 应用程序,需要存储程序的设置。我希望它们可以被非高级用户轻松编辑,但对高级用户来说足够灵活(因此允许通过其他程序、脚本等轻松进行自动编辑)。 QSettings 确实提供了两种格式,本机格式,对于 Windows 是注册表,以及 INI 格式,对于大多数其他平台是本机格式。 INI 很好,但是在其中看到 @QString(...) 或其他 Qt 内容并不真正可读,而且容易出错。
注册表也不是很好。它的设计初衷不是为了搞乱,因此不太适合编辑或高级使用;它确实解决了跨线程和多个 QSettings 对象的同步问题(因此我不会清除所有内容,尽管我可以只使用一个受读写锁保护的全局对象)。我正在查看 XML,但它非常冗长,并且确实需要编写 QSettings 格式(不是真正的问题)但非常灵活。
我知道 XML 的其他替代品存在,但我并不真正熟悉它们;我当然不想编写解析器,我自己的最终格式是例外,而不是基本的东西。
更新 - 注意: 我根本不会绕过 QSettings,我只会为它编写一个格式 - 看起来它只是两个函数指针(用于读取和写入函数)传递给静态函数,然后我可以使用我的格式。
更新 2: 我也担心 Linux 服务器,它们通常没有 GUI。我希望人们能够通过 nano 或类似的东西从服务器轻松编辑配置,不使用管理器(是的,我将拥有一个守护程序服务器和一个远程 GUI 管理器)。
【问题讨论】:
标签: xml qt settings format ini