QT QSettings读写ini文件 实现文件一键配置软件上的所有控件
1 ui设计Dome
两个按钮 (保存 导入)
两个spinbox(宽 高)
2 点击生成ini文件 或者点击导入ini文件
触发两个按钮槽函数
//加载
void framewindows::on_pushButton_browse_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ", tr("ini(*.ini);;Allfile(*.*)"));
if (fileName.length() < 1)
return;
loadini(fileName);//导入函数
QMessageBox::information(this, "Title", "load success");
}
//保存
void framewindows::on_pushButton_browse_2_clicked()
{
QString fileName = QFileDialog::getSaveFileName(this, tr("open file"), " ", tr("ini(*.ini);;Allfile(*.*)"));
if (fileName.length() < 1)
return;
saveini(fileName);//保存函数
QMessageBox::information(this, "Title","save success");
}
110.ini文件就是保存下来的文件
3 QSettings实现保存和导入ini进行配置
void saveini(QString filename)
{
QSettings *configIni = new QSettings(filename, QSettings::IniFormat);
configIni->setValue("/img_width", Width_spinbox->value());
configIni->setValue("/img_height", Height_spinbox->value());
delete configIni;
return;
}
void loadini(QString filename)
{
QSettings *configIni = new QSettings(filename, QSettings::IniFormat);
int tmp = configIni->value( "/img_width").toInt();
Width_spinbox->setValue(tmp);
tmp = configIni->value("/img_height").toInt();
Height_spinbox->setValue(tmp);
delete configIni;
return;
}
点击保存按钮 把控件数值按照节点保存到ini文件里面去
修改ini文件内容之后 点击导入 按照定义的控件节点设置成相应的值
ps:只举了两个控件的例子 多个控件举一反三就行 在工业领域qt架构软件 控件特别复杂 用这种方式一键配置你想要到操作
实现配置控件 在多线程情况下或者多界面对象或多个根节点字节点下都能这样操作 因为是简单dome就不做赘述