在.Net中,通常有一个app.config文件,并以访问configuration的方式构build。
有没有一个等效的标准方法来configuration使用Qt?
例如,假设我的应用程序连接到在线服务器,我希望能够存储连接详细信息(用户定义)。
这是一个“滚动你自己”的情况,还是有一种方法来存储和读取这些configuration使用XML或任何其他格式与Qt提供简单的读/写方法?
编辑:添加一些复杂的问题。 这是一个Linux控制台应用程序,所以请特别注意基于文件和透明configuration。
你可以使用QSettings
。 有关详细信息,请参阅文档:
http://qt-project.org/doc/qt-5.1/qtcore/qsettings.html
您可以像XML,Json等一样使用其他格式,但一般来说,QSettings就是这样,或者如果您正在编写KDE应用程序,那么可能是KConfig
。
这些是你在处理QSettings读写时需要注意的两个重要方法:
QVariant QSettings::value(const QString & key, const QVariant & defaultValue = QVariant()) const
void QSettings::setValue(const QString & key, const QVariant & value)
然后,你可以简单地坚持原生格式(如果你愿意,甚至可以在你的Linux上使用ini):
QSettings :: NativeFormat 0使用最合适的平台存储格式存储设置。 在Windows上,这意味着系统注册表; 在Mac OS X上,这意味着CFPreferences API; 在Unix上,这意味着INI格式的文本配置文件。
在这里你可以找到一个方便的例子:
#include <QSettings> int main() { .... QSettings settings("Foo", "Bar"); // settings.beginGroup("application"); QString string = settings.value("foo", "bar"); // settings.endGroup(); .... }
请注意,这些组是可选的,这取决于您的具体目的。 您可以按照某种方式对某些设置进行分组设置。
根据文档,这对您也许是重要的:
在Unix系统上,如果文件格式是NativeFormat,则默认使用以下文件:
$ HOME / .config / MySoft / Star Runner.conf(Qt for Embedded Linux:$ HOME / Settings / MySoft / Star Runner.conf)
$ HOME / .config / MySoft.conf(Qt for Embedded Linux:$ HOME / Settings / MySoft.conf)
/ etc / xdg / MySoft / Star Runner.conf
/etc/xdg/MySoft.conf