qsettings類提供了持久的跨平台應用程式設定,這些settings一般都是存在系統裡的,比如windows一般都寫在系統登錄檔或者寫ini檔案,mac系統一般都在xml檔案裡,那麼按照一般的標準來說,許多應用程式是用ini檔案來實現的。而qsettings就是提供了一種方便的方法來儲存和恢復應用程式的settings。
qsettings的api是基於qvariant,qvariant是一種資料型別的集合,它包含了大部分通常的qt資料型別,比如qstring,qrec,qimage,等等。
#include struct login ;
void main(int argc, char *argv)
; login login2 = ;
logins << login1 << login2;
settings.beginwritearray("logins");
for (int i = 0; i < logins.size(); ++i)
settings.endarray();
settings.sync();
}
setting.ini檔案內容為
[main%20file%20info]
main\file\info\exetitle=test
curdir=d:
[main]
file\info\exetitle=test
curdir=d:
[general]
curdir=d:
[logins]
1\username=inno
1\password=123456
2\username=gyj
2\password=123456
size=2
#include #include struct login ;
void main(int argc, char *argv)
settings.endarray();
}
輸出為:
"test"
"test"
"d:"
"inno"
"123456"
"gyj"
"123456"
上面我們用了兩個鍵值對來儲存乙個login結構體資料,這樣操作儲存和賦值都比較麻煩。我們可以通過給找個結構體增加一對qdatastream& operator>>和qdatastream& operator《來實現自定義資料的儲存與讀取。
#include #include #include struct login ;
qdatastream& operator<<(qdatastream& out, const login& obj)
qdatastream& operator>>(qdatastream& in, login &obj)
//q_declare_metatype
//如果要使自定義型別或其他非qmetatype內建型別在qvaiant中使用,必須使用該巨集。
//該型別必須有公有的 構造、析構、複製構造 函式
q_declare_metatype(login)
void main(int argc, char *argv)
; settings.setvalue("login", qvariant::fromvalue(login));
settings.sync();
}
讀取和普通讀取屬性是一樣的 Qt基礎 使用QSettings儲存讀取配置檔案
qsettings可以用來儲存或讀取配置檔案,不同於普通文字格式的字串訪問方式,qsettings可以儲存bool值 字型qfont 顏色qcolor等變數。定義qsettings變數,這個建構函式中,第乙個引數表示配置檔案的路徑及檔名,第二個引數表示是ini配置檔案 qsettings cfgfi...
QT中使用QSettings儲存應用程式配置資訊
使用qt中的qsettings中的一些方法,以下是我的一些簡單的應用方面,經過測試可行。首先我new了這麼乙個兩個物件,乙個物件我是用來寫入配置檔案的,乙個物件我是用來讀取配置檔案中資訊的 qt中使用qsettings類讀寫ini檔案 qsettings建構函式的第乙個引數是ini檔案的路徑,第二個...
QT中QSettings的使用
首先包含標頭檔案 include qsettings的使用 qsettings m inifile test.ini qsettings iniformat m inifile.begingroup userconfig m inifile.setvalue username ui edt user...