Qt--QSettings
6249 ワード
qt.confの一節ではqt.confはini形式のファイルであり、Qt内部ではQSettingsというクラスを使用してqtを解析保存する.confの構成.
まずQSettingsの使用例を見てみましょう.
実行プログラムをコンパイルすると、アプリケーションが存在するディレクトリにtestが生成される.iniファイル、ファイルの内容は以下の通りです.
これは典型的なini形式のファイルです.
QSettingsの使用では、このように書くことができます.
次のように書くこともできます.
IniFormatフォーマットのほかに、NativeFormatローカルフォーマットもあり、オペレーティングシステムによってデフォルトのNativeFormatが異なり、windowsではデフォルトがレジストリであり、linuxではiniファイルであるが、拡張子は.conf.
QSettingsのソースコードでは、実際には2つのクラスで読み書き構成されています.
QConfFileSettingsPrivateはiniファイルの読み書き、QWinRTSettingsPrivateはwindowsシステムのレジストリの読み書きに使用されます
QConfFileSettingsPrivateのreadIniFileとwriteIniFile関数を研究することに興味があります.
QSettingsクラスでは、データベースを使用せずに簡単なプログラム構成を簡単に保存できます.
まずQSettingsの使用例を見てみましょう.
#include
#include
#include
int main(int argc, char* argv[]){
QCoreApplication app(argc, argv);
QString filepath = QCoreApplication::applicationDirPath() + "/test.ini";
QSettings writer(filepath, QSettings::IniFormat);
writer.beginGroup("UI");
writer.setValue("x", "0");
writer.setValue("y", "0");
writer.setValue("w", "1280");
writer.setValue("h", "720");
writer.endGroup();
writer.beginGroup("HTTP");
writer.setValue("ip", "127.0.0.1");
writer.setValue("port", "80");
writer.endGroup();
QSettings reader(filepath, QSettings::IniFormat);
reader.beginGroup("UI");
qDebug() << reader.value("x");
qDebug() << reader.value("y");
qDebug() << reader.value("w");
qDebug() << reader.value("h");
reader.endGroup();
reader.beginGroup("HTTP");
qDebug() << reader.value("ip");
qDebug() << reader.value("port");
reader.endGroup();
// qDebug() << reader.value("UI/x");
// qDebug() << reader.value("UI/y");
// qDebug() << reader.value("UI/w");
// qDebug() << reader.value("UI/h");
return 0;
}
実行プログラムをコンパイルすると、アプリケーションが存在するディレクトリにtestが生成される.iniファイル、ファイルの内容は以下の通りです.
[UI]
x=0
y=0
w=1280
h=720
[HTTP]
ip=127.0.0.1
port=80
これは典型的なini形式のファイルです.
[section]
key=value
QSettingsの使用では、このように書くことができます.
set.beginGroup("section");
set.setValue("key", "value");
QString value = set.value("key").toString();
set.endGroup();
次のように書くこともできます.
set.setValue("section/key", "value");
QString value = set.value("section/key").toString();
IniFormatフォーマットのほかに、NativeFormatローカルフォーマットもあり、オペレーティングシステムによってデフォルトのNativeFormatが異なり、windowsではデフォルトがレジストリであり、linuxではiniファイルであるが、拡張子は.conf.
QSettingsのソースコードでは、実際には2つのクラスで読み書き構成されています.
QConfFileSettingsPrivateはiniファイルの読み書き、QWinRTSettingsPrivateはwindowsシステムのレジストリの読み書きに使用されます
QConfFileSettingsPrivateのreadIniFileとwriteIniFile関数を研究することに興味があります.
QSettingsクラスでは、データベースを使用せずに簡単なプログラム構成を簡単に保存できます.