#include <QSettings>
#include <QPointF>
typedef struct tag_Login{
QString userName;
QString password;
QPointF pos;
}Login;
Login Create_mapping_func(const QString &userName,const QString &password,const QPointF &pos)
{
Login temp;
temp.userName = userName;
temp.password = password;
temp.pos = pos;
return temp;
}
int main(int argc, char *argv[])
{
QList<Login> logins;
logins.push_back(Create_mapping_func("test1","123456",QPointF(0.0,1.1)));
logins.push_back(Create_mapping_func("test2","000000",QPointF(1.5,2.2)));
logins.push_back(Create_mapping_func("test3","111111",QPointF(2.4,3.6)));
logins.push_back(Create_mapping_func("test4","123123",QPointF(3.9,4.0)));
QSettings settings("./myapp.ini",QSettings::IniFormat);
settings.beginWriteArray("logins");
for (int i = 0; i < logins.size(); ++i) {
settings.setArrayIndex(i);
settings.setValue("userName", logins.at(i).userName);
settings.setValue("password", logins.at(i).password);
settings.setValue("pos",logins.at(i).pos);
}
settings.endArray();
int size = settings.beginReadArray("logins");
for (int i = 0; i < size; ++i) {
settings.setArrayIndex(i);
Login login;
login.userName = settings.value("userName").toString();
login.password = settings.value("password").toString();
login.pos = settings.value("pos").toPointF();
logins.append(login);
}
settings.endArray();
foreach(Login s,logins){
qDebug()<<"userName:"<<s.userName<<" password:"<<s.password<<" pos:("<<s.pos.x()<<","<<s.pos.y()<<")";
}
}
运行结果:
userName: "test1" password: "123456" pos:( 0 , 1.1 )
userName: "test2" password: "000000" pos:( 1.5 , 2.2 )
userName: "test3" password: "111111" pos:( 2.4 , 3.6 )
userName: "test4" password: "123123" pos:( 3.9 , 4 )
userName: "test1" password: "123456" pos:( 0 , 1.1 )
userName: "test2" password: "000000" pos:( 1.5 , 2.2 )
userName: "test3" password: "111111" pos:( 2.4 , 3.6 )
userName: "test4" password: "123123" pos:( 3.9 , 4 )
myapp.ini
[logins]
1\userName=test1
1\password=123456
2\userName=test2
2\password=000000
3\userName=test3
3\password=111111
4\userName=test4
4\password=123123
size=4
1\pos=@Variant(\0\0\0\x1a\0\0\0\0\0\0\0\0?\xf1\x99\x99\x99\x99\x99\x9a)
2\pos=@Variant(\0\0\0\x1a?\xf8\0\0\0\0\0\0@\x1\x99\x99\x99\x99\x99\x9a)
3\pos=@Variant(\0\0\0\x1a@\x3\x33\x33\x33\x33\x33\x33@\f\xcc\xcc\xcc\xcc\xcc\xcd)
4\pos=@Variant(\0\0\0\x1a@\xf\x33\x33\x33\x33\x33\x33@\x10\0\0\0\0\0\0)