参考链接:
QSettings
概述
格式:本地格式,ini。
存储位置:注册表regedit,绝对路径,当前目录(./)。
QSettings setting("./Setting.ini", QSettings::IniFormat);//当前目录,ini
QSettings settings("MySoft", "Runner");//注册表(公司-软件名) 存int型REG_DWORD,其它REG_SZ
一.参数读写文件
QFile file("./Setting.ini");
if (file.exists()) { //文件存在,则读取值
bContinuity = setting.value(QString("bContinuity")).toBool();
bImg = setting.value(QString("bImg")).toBool();
nEdge = setting.value(QString("nEdge")).toInt();
nStep = setting.value(QString("nStep")).toInt();
}
else { //文件不存在则采用默认值,并存入配置文件
bContinuity = true;
bImg = true;
nEdge = 2000;
nStep = 500;
QSettings setting("./Setting.ini", QSettings::IniFormat);//猜测此步不创建Setting.ini文件
setting.setValue(QString("bContinuity"), bContinuity);猜测此步创建Setting.ini
setting.setValue(QString("bImg"), bImg);
setting.setValue(QString("nEdge"), nEdge);//通过ID名进行绑定
setting.setValue(QString("nStep"), nStep);
}
保存/刷新更改
setting.sync(); //来提交更改
二.遍历(allkeys())
问题:按字母表排序,不按ini文件内容顺序。
解决思路:
1.键值加前缀。
三.调用exe
QProcess process(this);
QString str = QApplication::applicationDirPath()+"/Camera/CameraControl.exe";
process.startDetached(str);//QProcess
注:子exe调用"./Setting.ini",仍为父exe所在目录。
四.随笔
1.Qt4 error C2039: “setCurrentText”: 不是“QComboBox”的成员。
2.QMainWIndow关闭-close(),QDialog关闭-accept,reject()。