QSettings
は、INI ファイルの処理に適した優れたクラスです。私はそれをチェックアウトします。適切に最適化されており、非常に堅牢です。またQVariant
、非常にインテリジェントな方法で使用します。また、「グループ」もうまく処理します。
http://qt-project.org/doc/qt-4.8/qsettings.html
// in your main, or somewhere very early in your program
qApp->setApplicationName("Star Runner");
qApp->setOrganizationName("MySoft");
QSettings::setDefaultFormat(QSettings::IniFormat);
後で設定にアクセスまたは設定したい場合
QSettings s; // in windows this would be
// C:/Users/<username>/AppData/Roaming/MySoft/Star Runner.ini
または、この方法で ini ファイルを指定して、特定の ini ファイルを指すこともできます。
QSettings::QSettings ( const QString & fileName, Format format, QObject * parent = 0 )
QSettings s("path/to/my/inifile.ini", QSettings::IniFormat);
次に、設定変数の使用例を示します。
// set the setting
s.setValue("group_name/setting_name", new_value);
// retrieve the setting
// Note: Change "toType" to whatever type that this setting is supposed to be
current_value = s.value("group_name/setting_name", default_value).toType();
ネストされた要素と GUI のレイアウトとデザインを処理したい場合は、XML または JSON を調べます。どちらも Qt でサポートされています。
XML は、Qt Creator が Qt Designer によって作成された UI ファイルを格納するネイティブな方法です。
http://qt-project.org/doc/qt-5.0/qtxml/qtxml-module.html
http://qt-project.org/doc/qt-5.0/qtcore/json.html
それが役立つことを願っています。