Qt 快速保存配置的方法
一、概述
这里分享一下,Qt界面开发时,快速保存界面上一些参数配置的方法。
因为我在做实验的时候,界面上可能涉及到很多参数的配置,我也不大可能自己去记录每一个参数的值,不保存这些,下次启动的时候要自己手输就非常浪费时间,因此我用了Qt的Meta-Object 系统,结合了ObjectName,把配置保存为json文本。这就非常方便的实现了我想要的功能。
为了改动不大,为了避免配置耦合,还是采用分离的宏定义的方式去做会更好一些。暂时没有想到用类的继承去做,有建议的话可以在评论区交流一下呐。
二、代码
1. QFileHelper.cpp
这个函数就是保存和读写文本的通用配置,在写文件的时候,不存在目录的文件也会先创建目录文件的父目录再去写。
bool QFileHelper::writeAllText(const QString &fileName, QString &text)
{
QFile file(fileName);
QDir dir(fileName);
QString parentPath = dir.absolutePath().replace(dir.absolutePath().split("/", QString::SkipEmptyParts).last(), "");
if(!dir.exists(parentPath)){
if(!dir.mkdir(parentPath)){
return false;
}
}
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return false;
QTextStream out(&file);
out.setCodec("utf-8");
out<<text;
QSettingHelper::Instance()->setLastOpenFileDir(QFileInfo(fileName).dir().absolutePath());
file.close();
return true;
}
bool QFileHelper::readAllText(const QString &fileName, QString &text)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
QTextStream in(&file);
in.setCodec