【发布时间】:2012-02-14 09:28:32
【问题描述】:
我想将一个已经存在的 QSettings 对象保存到某个 INI 文件中以进行备份。
QSettings 来自应用程序的全局设置,即。可以是注册表、ini文件等
如果有帮助,我的上下文是:
class Params
{
// All params as data members
// ...
void loadGlobal ()
{
Qettings s; // Global parameters, paths set by application
// Fill data members: s.value (...);
}
};
class Algo
{
Result run (Params p)
{
Result r = F(p);
return r;
}
};
int main (...)
{
Params p;
p.loadGlobal ();
Algo a;
Result r = a.run (p);
// At this point, save Result and Params into a specific directory
// Is there a way to do:
p.saveToIni ("myparams.ini"); // <-- WRONG
}
一种解决方案是将saveTo (QSetting & s) 方法添加到Params 类中:
class Params
{
void saveTo (QSettings & s)
{
s.setValue (...);
}
};
int main (...)
{
Params p;
p.loadGlobal ();
QSettings bak ("myparams.ini", ...);
p.saveTo (bak);
}
但我正在寻找不修改 Params 类的解决方案。
【问题讨论】: