QT中,读取ini配置文件的封装类

前言

每次都使用QSeting去读取和写入,感觉还是麻烦,于是自己封装了一个类。

源码

managerIniFile.h

cpp 复制代码
#ifndef MANAGERINIFILE_H
#define MANAGERINIFILE_H
#include <QString>
#include <QDebug>
#include <QSettings>
#include <QCoreApplication>

/**
 * @brief 配置文件管理类
 */
class ManagerIniFile
{
public:
    ManagerIniFile();
    void SetIniPath(QString strIniFileName);
    void WriteSetting(QString strGroup, QString strValueName,QString strValue);
    QString ReadSetting(QString strGroup, QString strValueName, QString defaultStr = QString(""));

private:
    QString   defaultStrIniFileName;
    QString   strIniFileName;
    QSettings *m_settings;

};

#endif // MANAGERINIFILE_H

// 使用案例:
// QString strIniPath = QCoreApplication::applicationDirPath();
// strIniPath += "/";
// strIniPath += "config.ini";
// ManagerIniFile info;
// 可省:info.SetIniPath(strIniPath);

managerIniFile.cpp

cpp 复制代码
#include "managerIniFile.h"

ManagerIniFile::ManagerIniFile()//:m_settings(defaultStrIniFileName,QSettings::IniFormat)
{
    defaultStrIniFileName = QCoreApplication::applicationDirPath() + "/" + "config.ini";
    strIniFileName = defaultStrIniFileName;
    m_settings = new QSettings(defaultStrIniFileName, QSettings::IniFormat);
}

void ManagerIniFile::SetIniPath(QString strIniFileName)
{
    m_settings->setUserIniPath(strIniFileName);
}

void ManagerIniFile::WriteSetting(QString strGroup, QString strValueName,QString strValue)
{
    // qDebug()<<"save ini file";
    m_settings->beginGroup(strGroup);
    m_settings->setValue(strValueName,strValue);
    m_settings->endGroup();
}

QString ManagerIniFile::ReadSetting(QString strGroup, QString strValueName, QString defaultStr)
{
    QString str = QString("%1/%2").arg(strGroup,strValueName);

    if(!(m_settings == nullptr))delete m_settings;
    m_settings = new QSettings(defaultStrIniFileName, QSettings::IniFormat);
    QString res = m_settings->value(str).toString();

    if(res==QString(""))
        return defaultStr;
    return res;

}

使用案例

  1. 默认配置文件是config.ini,可以手动更改:

// 使用案例:

QString strIniPath = QCoreApplication::applicationDirPath();

strIniPath += "/";

strIniPath += "config.ini";

ManagerIniFile info;

可省:info.SetIniPath(strIniPath);

  1. 读取:
cpp 复制代码
ManagerIniFile  iniManager;

QString tmp = iniManager.ReadSetting("VIDEOPARA1",tr("SHOWCTRL"));

QString tmp = iniManager.ReadSetting("VIDEOPARA1",tr("SHOWCTRL"),QString::number(1)).toUInt();
  1. 写入:
cpp 复制代码
ManagerIniFile  iniManager;

iniManager.WriteSetting("VIDEOPARA1",tr("SHOWCTRL"),"2");
相关推荐
扶尔魔ocy2 小时前
【qt openGL入门笔记】OSG实现飞机模型在网格图上飞行并进行态势标绘(四)
qt·opengl·osg
橙橙笔记5 小时前
QT安卓软件的制作
android·git·qt·软件
芦芭荞6 小时前
QT使用xml模版生成word文档
xml·qt·word
mengzhi啊6 小时前
qt把结构体数据存入json文件
qt·json
kaixin_learn_qt_ing7 小时前
写入二进制文件(Qt)
qt
尘中远9 小时前
QWT7 的科学 Colormap 色彩评估:QwtColorMapPreset 22 种预设的感知均匀性与场景化选
qt·qwt·科学绘图·科学配色
宿州派大星14 小时前
Python实战:PyQt5 + OpenCV + Dlib 打造AI桌面应用
人工智能·python·qt
长沙红胖子Qt1 天前
Qt+TiePieHS3开发笔记(二):HS3发送器发出内置波形、直连示波器,示波器检测内置波形Demo
qt·示波器·tiepiehs3·发生器·同步发射和示波器采集
陈年老古董1 天前
PyQt5 入门指南:环境搭建、PyCharm 外部工具配置与登录界面实战
开发语言·qt·pycharm
zhanghaha13141 天前
Qt 类完整例程【逐词拆解 + 逐步骤执行保姆教程】
开发语言·qt