在Qt控制台应用程序中configuration的标准方法是什么?

在.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