QSettings使用方法

QSettings如何读写配置文件

读函数:

QVariant value(const QString &key, const QVariant &defaultValue = QVariant())
第一个参数是键
第二个参数是值

写函数:

void setValue(const QString &key, const QVariant &value)
第一个参数是键
第二个参数是默认值,也就是说如果没有读到值,就返回该默认值,如填-1 ,就返回-1

    QSettings *settings = new     QSettings("./setting.ini",QSettings::IniFormat);
    //写
    settings->beginGroup("MAIN");
    settings->setValue("title","Qt配置");
    settings->endGroup();
    settings->beginGroup("OTHER");
    settings->setValue("width",666);
    settings->endGroup();

    //读
     settings->beginGroup("MAIN");
     QString title = settings->value("title","").toString();
     qDebug()<<"title= "<<title; //输出至控制台
     settings->endGroup();
     settings->beginGroup("OTHER");
     QString width = settings->value("width",-1).toString();
     qDebug()<<"width= "<<width; //输出至控制台
     settings->endGroup();

控制台输出的信息:
在这里插入图片描述
setting.ini文件里的内容
在这里插入图片描述

如果想保存所有窗口位置,以使下一次运行应用程序时能够恢复它们的值,那么可以使用QMainWindow的sayeState()和restoreState()函数:

保存在注册表里:

void MainWindow::writeSettings(){
    QSettings settings ("Software Inc.", "QMainWindow APP");
    settings.beginGroup("mainWindow");
    settings.setValue("geometry", saveGeometry());
    settings.setValue ("state", saveState());
    settings.endGroup();
}
void MainWindow::readSettings()
{
    QSettings settings ("Software Inc.", "QMainWindow APP");
    settings.beginGroup("mainWindow");
    restoreGeometry(settings.value ("geometry").toByteArray());
    restoreState(settings.value("state").toByteArray());
    settings.endGroup();
}

也可以保存在ini文件里:

void MainWindow::writeSettings(){
    QSettings settings ("QMainWindow_APP.ini");
    settings.beginGroup("mainWindow");
    settings.setValue("geometry", saveGeometry());
    settings.setValue ("state", saveState());
    settings.endGroup();
}
void MainWindow::readSettings()
{
    QSettings settings ("QMainWindow_APP.ini");
    settings.beginGroup("mainWindow");
    restoreGeometry(settings.value ("geometry").toByteArray());
    restoreState(settings.value("state").toByteArray());
    settings.endGroup();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值