【QT】读写.ini配置文件的程序实现

本文介绍如何使用QT提供的接口进行INI配置文件的读写操作,以保存和加载软件设置,包括设置默认配置、从INI文件读取配置以及在软件关闭时保存当前设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我们在设计软件得时候很多时候会用到设置得保存,例如用户使用最多得串口助手,当设置好串口得波特率、校验位等等设置过后用户肯定是希望下次打开得时候能恢复昨天工作调试得配置而不是打开软件过后还需要再重复设置一遍,所以我们就需要学习一下ini文件配置读写,其实通过文件读写得方式也是可以实现相同得效果,但是QT给我们提供了ini文件读写得接口,在配置设置得过程中为我们提供了很多便利,接下来我们看看效果。
在这里插入图片描述

思路

当我们打开软件得时候首先读取ini配置文件中是否有存在得设置,如果没有得话我们就设置默认得程序配置,但读取到配置文件设置得时候就将该设置放置到该控件得数值,但我们软件进行关闭得时候将页面上得设置写入到ini文件中,下面是具体得实现代码。

iniConfig.cpp

#include "iniconfig.h"

iniConfig::iniConfig()
{

}
// 用户需要修改保存配置.INI文件得位置得时候修改这行地址,相对于写入函数也需要修改,但然这个封装还可以继续优化将文件位置也提供给用户设置
// QString m_sProjectPath = QCoreApplication::applicationDirPath();//获取exe文件所在目录
void iniConfig::writeIniValue(QString key_root, QString key, QString value)
{
    QString m_sProjectPath = QCoreApplication::applicationDirPath();//获取exe文件所在目录

    //第二个参数表明是ini文件格式
    QSettings *configIni = new QSettings (QString("%1/" +key_root ).arg(m_sProjectPath),QSettings::IniFormat);

    configIni->setIniCodec(QTextCodec::codecForName("System"));//确保键值可以是中文
    configIni->beginGroup(key_root);

    configIni->setValue(key, value);
    //    configIni->setValue("Directory", m_sProjectPath);
    configIni->endGroup();
    delete configIni;
}

// 用户需要修改保存配置.INI文件得位置得时候修改这行地址
// QString m_sProjectPath = QCoreApplication::applicationDirPath();//获取exe文件所在目录
QString iniConfig::getIniValue(QString key_root, QString key)
{
    QString m_sProjectPath = QCoreApplication::applicationDirPath();//获取exe文件所在目录

    QSettings *configIni = new QSettings (QString("%1/"+ key_root ).arg(m_sProjectPath),QSettings::IniFormat);

    configIni->setIniCodec(QTextCodec::codecForName("System"));//确保读出来的中文键值可以正常解析

    QString value = configIni->value(key_root+ "/" + key,QString("")).toString();
    //    QString Directory= configIni->value("Config/Directory",m_sProjectPath).toString();

    delete configIni;
    return value;
}

iniConfig.h

#ifndef INICONFIG_H
#define INICONFIG_H

#include <QString>
#include <QSettings>
#include <QTextCodec>
#include <QCoreApplication>

class iniConfig
{
public:
    iniConfig();
    QString getIniValue(QString key_root, QString key);
    void writeIniValue(QString key_root, QString key, QString value);
};

#endif // INICONFIG_H

使用方法

刚刚在思路得时候介绍了软件得打开和关闭其实和窗口类得构造和析构函数相对于,所以我们只需要在这两个函数中添加读和写就完成了我们得效果。

	iniConfig *ini = new iniConfig();
// 读取上一次地址配置getIniValue第一个数值是指配置文件名字,第二个是配置参数
  ui->edit_ip->setText(ini->getIniValue("Config.ini","ADDRESS"));
  ui->edit_port->setText(ini->getIniValue("Config.ini","PORT"));
// 保存地址配置 writeIniValue第一个参数配置文件名然后是参数最后是内容
  ini->writeIniValue("Config.ini","ADDRESS",ui->edit_ip->text());
  ini->writeIniValue("Config.ini","PORT",ui->edit_port->text());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凉开水白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值