qsettings例子

#include <QCoreApplication>
#include <QDebug>
#include <QDir>
#include <QDate>
#include <QSettings>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    /*设置公司名,架构名
       在unix上,如果文件格式是NativeFormat, 则默认从下面选择路径:
        $HOME/.config/Example/exaple.conf (Qt for Embedded Linux: $HOME/Settings/Example/exaple.conf)
        $HOME/.config/Example.conf (Qt for Embedded Linux: $HOME/Settings/Example.conf)
        for each directory <dir> in $XDG_CONFIG_DIRS: <dir>/Example/exaple.conf
        for each directory <dir> in $XDG_CONFIG_DIRS: <dir>/Example.conf
    */
    QSettings settings("Example", "example");

    //没有设置group时默认位于General
    settings.setValue("first","this is a example");

    //写入值
    settings.beginGroup("Date");
    settings.setValue("date", QDate::currentDate().toString("yy/MM/dd"));
    settings.setValue("number",100);
    settings.endGroup();

    settings.setValue("Date/number1",1); //也可以通过/分隔符来定位

    //写入数组
    struct Login {
        QString userName;
        QString password;
    };
    QList<Login> logins;

    settings.beginWriteArray("logins");
    for (int i = 0; i < 5; ++i) {
        settings.setArrayIndex(i);
        settings.setValue("userName", QString::number(i));
        settings.setValue("password", QString::number(i));
    }
    settings.endArray();

    //读取值
    qDebug()<<"first = "<<settings.value("first").toString();
    qDebug()<<"date = "<<settings.value("Date/date").toString();
    qDebug()<<"number = "<<settings.value("Date/number").toInt();

    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();
        logins.append(login);
        qDebug()<<"username = "<<login.userName;
        qDebug()<<"password = "<<login.password;
    }
    settings.endArray();

    return a.exec();
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值