Qt學習 對ini文件進行讀寫操作

首先介紹一下界面
在這裏插入圖片描述
界面中第一行我創建了選擇文件的按鈕 後面跟着一個顯示文件路徑的LineEdit 還有讀寫文件的按鈕
下面分別是int文件中的一些數據格式 左邊是label 右邊是LineEdit

ui界面創建好以後
下面是widget.h的代碼

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    QString path;  //我將文件路徑用path保存下來 並設爲成員變量

    void ReadFile();//讀文件函數
    void WriteFile();//寫文件函數
private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

下面是widget.cpp的代碼

#include<QSettings>
#include<QFileDialog>
#include<QFile>
#include<QTextCodec>
#include<QString>
#include<QMessageBox>
#include<QDebug>
#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    //點擊選擇文件會創建出一個文件對話框  選擇後文件路徑保存在path中
    connect(ui->pushButton,&QPushButton::clicked,[=](){
        //創建文件對話框  並將地址保存在path中
        path =  QFileDialog::getOpenFileName(this,"打開文件","C:\\Users\\LEN\\Desktop",("*.ini"));
        ui->lineEdit->setText(path);
		
		//利用信號槽將讀文件按鈕和寫文件按鈕與相應的槽函數連接起來
        connect(ui->pushButton_2,&QPushButton::clicked,this,&Widget::ReadFile);
        connect(ui->pushButton_3,&QPushButton::clicked,this,&Widget::WriteFile);
    });

}
//讀文件函數
void Widget::ReadFile()
{
    QSettings settings(path, QSettings::IniFormat);
	
    if(settings.contains("CommonConfig/SQLServerIP"))
    {
        QString SQLServerIP = settings.value("CommonConfig/SQLServerIP").toString();
        ui->lineEdit_2->clear();
        ui->lineEdit_2->insert(SQLServerIP);
//後面的可以複製上面的  將名字改爲自己文件中的名字就可以了

    }
}
void Widget::WriteFile()
{
	//點擊寫文件按鈕會彈出一個問題對話框  選擇Yes會執行下面的代碼
    if(QMessageBox::Yes == QMessageBox::question(this,"保存","是否保存修改?"))
    {
		
        QSettings settings(path, QSettings::IniFormat); // 選擇的INI文件
        //Config setting
        //選擇寫文件時開始的組  我的是CommonConfig  也就是int文件中第一行[ ]括起來的就是
        settings.beginGroup("CommonConfig");
        //將lineEdit中的內容寫在文件中 並在前面加上SQLServerIP=
        settings.setValue("SQLServerIP", ui->lineEdit_2->text());
        settings.endGroup();
		//後面的就可以複製前面的代碼  修改對應的名字就行
    }
}
Widget::~Widget()
{
    delete ui;
}

成果展示
在這裏插入圖片描述
選擇好文件後
在這裏插入圖片描述
點擊讀文件
在這裏插入圖片描述
對自己想要修改的項修改完後 點擊寫文件就可以生成相應的文件

發佈了45 篇原創文章 · 獲贊 39 · 訪問量 3187
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章