首先介绍一下界面
界面中第一行我创建了选择文件的按钮 后面跟着一个显示文件路径的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;
}
成果展示
选择好文件后
点击读文件
对自己想要修改的项修改完后 点击写文件就可以生成相应的文件