QSettings配置ini文件,ReadArray、WriteArray读写一组系列数据

#include 
#include 

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 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:"<

运行结果:

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)

 

你可能感兴趣的:(QT)