QT随录:添加和使用配置文件

QT实现一个简单的添加和使用配置文件的例程,比较实用,文末附源码

QT中,可以使用 QSettings 类来读取和写入 INI 格式的配置文件。INI 文件是一种常见的配置文件格式,通常用于存储应用程序的配置信息,例如用户设置、应用程序选项等。

在程序中新建一个文本输入框显示和修改参数,在configFileInit函数中先判断配置文件是否存在,若不存在,则写入默认配置;若存在配置文件,读取参数的键值,然后在文本输入框显示
关闭程序时,保存文本输入框中的参数值

  • 小知识:
    点击关闭按钮,QT会调用closeEvent,重写该虚函数即可在关闭程序时进行一些操作(例如再次确认是否关闭,或是保存参数等),这里用来保存参数

首次运行:
在这里插入图片描述
config.ini默认在可执行程序同级目录生成,可自行修改配置文件位置
在这里插入图片描述
可在输入框修改参数,例如改为192.168.1.99,关闭程序后查看config.ini已修改,再次执行程序,可以看到参数已读取和显示
在这里插入图片描述
程序比较简单,附上源码供参考:
MainWindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->setGeometry(0,0,800,480);
    lineEdit=new QLineEdit(this);
    lineEdit->setGeometry(50,50,200,50);
    configFileInit();
    lineEdit->setText(configString);
}

MainWindow::~MainWindow()
{
}

void MainWindow::closeEvent ( QCloseEvent * e )
{
    QSettings *configIniWrite = new QSettings(CONFIG_FILE_PATH_DEFAULT, QSettings::IniFormat);
    configIniWrite->setValue("server_ip", lineEdit->text().trimmed());
    delete configIniWrite;
    e->accept();//不会将事件传递给组件的父组件,即直接关闭程序
}

void MainWindow::configFileInit()
{
    QFile configFile;
    if (!configFile.exists(CONFIG_FILE_PATH_DEFAULT))
    {
        qDebug()<<"no config.ini, need create";

       //Qt中使用QSettings类读写ini文件
       //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
       QSettings *configIniWrite = new QSettings(CONFIG_FILE_PATH_DEFAULT, QSettings::IniFormat);
       //向ini文件中写入内容,setValue函数的两个参数是键值对
       //向ini文件的第一个节写入内容,ip节下的第一个参数(即默认参数)
       configIniWrite->setValue("server_ip", "192.168.1.15");
       configString="192.168.1.15";
       //写入完成后删除指针
       delete configIniWrite;
    }
    else
    {
        QSettings *configIniRead = new QSettings(CONFIG_FILE_PATH_DEFAULT, QSettings::IniFormat);
        //将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
        configString = configIniRead->value("server_ip").toString();
        qDebug()<<"read config, server_ip:" + configString;
        //读入入完成后删除指针
        delete configIniRead;
    }
}

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QLineEdit>
#include <QDebug>
#include <QFile>
#include <QSettings>
#include <QCloseEvent>


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QLineEdit *lineEdit;
    QString configString;
    virtual void closeEvent(QCloseEvent* event) override;
    void configFileInit();
    #define CONFIG_FILE_PATH_DEFAULT "./config.ini"
};
#endif // MAINWINDOW_H

读写ini参考:https://blog.csdn.net/qiurisuixiang/article/details/7760828
closeEvent参数:https://blog.csdn.net/bureau123/article/details/113518456

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值