使用QSettings儲存QT應用程式資料

2021-08-20 04:06:21 字數 1797 閱讀 9866

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