一、ini文件的概念
INI文件,即Initialization File的缩写,是Windows系统配置文件的一种存储格式,用于管理Windows的各种配置。通常,用户可以通过Windows提供的图形化管理界面来进行相同的配置设置。然而,在某些特定情况下,直接编辑INI文件更为方便,这通常需要对Windows系统有较深入的了解。
二、QT中读写INI文件的基本方法
1、引入头文件
在使用QT进行INI文件的读写操作之前,需要包含相关的头文件:
#include <QSettings>
2、写入INI文件
(1)定义一个QSettings指针对象,例如:
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 <QMainWindow>
#include <QSettings>
#include <QDebug>
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_Hmainwindow.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。


如果现在提出一个新的需求,要求修改上述接口以实现任意类型参数的写入,使用重载机制还是模板来实现更合适?这个问题留给读者自行思考。
以上就是QT读写.INI文件的实现方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号