QSettings 讀/寫ini配置文件中的數組數據


以前項目中讀寫ini配置文件,都是以單個key-value形式進行讀寫,現在項目中又用到了需要把數據數組放置到ini配置文件中,這里結合Qt官方文檔進行驗證和總結。

配置文件中數據格式,存放三組數據,如圖1所示:

圖1 

1、寫入數據

 1 void WriteIni() {
 2   QList<Login> logins_list;
 3   Login log1;
 4   log1.userName = "test1";
 5   log1.password = "1111";
 6   logins_list.append(log1);
 7 
 8   Login log2;
 9   log2.userName = "test2";
10   log2.password = "2222";
11   logins_list.append(log2);
12   Login log3;
13   log3.userName = "test3";
14   log3.password = "3333";
15   logins_list.append(log3);
16 
17   QSettings settings("config.ini", QSettings::IniFormat);
18   settings.beginWriteArray("BaseInfo");
19   for (int i = 0; i < logins_list.size(); ++i) {
20     settings.setArrayIndex(i);
21     settings.setValue("password", logins_list.at(i).password);
22     settings.setValue("userName", logins_list.at(i).userName);
23   }
24   settings.endArray();
25 }

 

2、讀取數據

 1 void ReadIni() {
 2   QList<Login> logins;
 3 
 4   QSettings settings("config.ini", QSettings::IniFormat);
 5   int size = settings.beginReadArray("BaseInfo");
 6   for (int i = 0; i < size; ++i) {
 7     settings.setArrayIndex(i);
 8     Login login;
 9     login.userName = settings.value("userName").toString();
10     login.password = settings.value("password").toString();
11     logins.append(login);
12   }
13   settings.endArray();
14 
15   for (int i = 0; i < logins.length(); ++i) {
16     qDebug() << logins[i].userName;
17     qDebug() << logins[i].password;
18   }
19 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM