一、ini文件的概念
INI文件,即Initialization File的缩写,是Windows系统配置文件的一种存储格式,用于管理Windows的各种配置。通常,用户可以通过Windows提供的图形化管理界面来进行相同的配置设置。然而,在某些特定情况下,直接编辑INI文件更为方便,这通常需要对Windows系统有较深入的了解。
二、QT中读写INI文件的基本方法
1、引入头文件
在使用QT进行INI文件的读写操作之前,需要包含相关的头文件:
#include
2、写入INI文件
(1)定义一个QSettings指针对象,例如:
此代码么有依靠js文件实现的,而且大图和小图是分开的,这样用户在打开网页的时候能节约不少时间和流量 此代码实现方法也很简单,可以直接把index.html和images下面的文件拷贝到你需要运行的位置,然后保存即可,images下面的大图和小图按照你的需求来改,也可以给大图增加链接。
QSettings *configIniWrite;
(2)实例化对象,例如:
configIniWrite = new QSettings("INI", QSettings::IniFormat);(3)写入INI文件
configIniWrite->setValue("/Setting/xxx", "100");(4)释放对象的堆内存
delete configIniWrite;
3、读取INI文件
(1)定义一个QSettings指针对象,例如:
QSettings *configIniRead;
(2)实例化对象,例如:
configIniRead = new QSettings("INI", QSettings::IniFormat);(3)获取INI文件中的键值,键值可以是字符串或其他类型(前提是,INI文件存在且文件名可以自定义),例如:
QString str = configIniRead->value("/Setting/xxx").toString();
qDebug() << str;我们可以将读写Config.ini的过程封装成两个API,以便直接调用。以下是一个简单的示例:
三、示例实现
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include#include #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; void writeConfigIniForInt(QString __keyRoot, QString __keyValue, int value); QString readConfigIni(QString __keyRoot, QString __keyValue); }; #endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#define CONFIG_INI_NAME "C:/Users/Administrator/Desktop/QT_study/Config.ini"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 写入配置参数到 CONFIG_INI_NAME
writeConfigIniForInt("SETTING", "VOL", 100);
QString str = readConfigIni("SETTING", "VOL");
qDebug() << str;
}
MainWindow::~MainWindow()
{
delete ui;
}
// 读取配置文件
QString MainWindow::readConfigIni(QString __keyRoot, QString __keyValue)
{
QSettings *configIniRead = new QSettings(CONFIG_INI_NAME, QSettings::IniFormat);
QString keyValue = "/" + __keyRoot + "/" + __keyValue;
QString value = configIniRead->value(keyValue).toString();
delete configIniRead;
return value;
}
// 写入配置文件
void MainWindow::writeConfigIniForInt(QString __keyRoot, QString __keyValue, int value)
{
QSettings *configIniWrite = new QSettings(CONFIG_INI_NAME, QSettings::IniFormat);
if (__keyRoot.isNull() || __keyValue.isNull()) {
delete configIniWrite;
return;
}
QString keyValue = "/" + __keyRoot + "/" + __keyValue;
configIniWrite->setValue(keyValue, value);
delete configIniWrite;
}运行结果将生成一个名为Config.ini的文件,并且能够读取到INI文件中存储的参数值为100。


如果现在提出一个新的需求,要求修改上述接口以实现任意类型参数的写入,使用重载机制还是模板来实现更合适?这个问题留给读者自行思考。









