Qt开发记录17——读取ini配置文件参数

搜索ini配置文件,获取文件路径

代码

QString searchConfigFile()
{
    // exe文件所在目录
    QString binDir = QCoreApplication::applicationDirPath();
    printLog("exe文件所在目录: " + binDir);
    // 搜索的目标文件名称
    QString fileName = "config.ini";
    printLog("搜索的目标文件名称: " + fileName);

    QStringList searchList;
    searchList.append(binDir + "/../config" + configPath);
    searchList.append(binDir + "/config" + configPath);

    foreach(QString dir, searchList)
    {
        QFile file(dir + "/" + fileName);
        if (file.exists())
        {
            fileName = QDir(file.fileName()).canonicalPath();
            printLog("fileName[" + fileName + "] found.");
            return fileName;
        }
    }
    printLog("fileName[" + fileName + "] not found.");
    return nullptr;
}

设置全局变量

qglobal.h

#ifndef GlobalVar_h
#define GlobalVar_h

#include <QString>

extern QString fileSeparator;

#endif

qglobal.cpp

#include "globalvar.h"

QString fileSeparator;

加载ini配置文件,读取参数

代码

void loadInitData()
{
    fileSeparator = QDir::separator();
    
	QString configPath = searchConfigFile();
	
	QSettings *configIniRead = new QSettings(configPath, QSettings::IniFormat);
	configIniRead->setIniCodec(QTextCodec::codecForName("UTF-8"));
	
	QString fileSeparatorTxt = configIniRead->value("fileSeparator").toString();
	if(0 == fileSeparatorTxt.length())
	{
	    QMessageBox::information(nullptr, "信息", "没有获取到分隔符配置信息", QMessageBox::Ok, QMessageBox::NoButton);
	}
	else
	{
	    fileSeparator = fileSeparatorTxt;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小言W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值