我试图在设置文件中保留一些特定于应用程序的信息。信息,如表单大小和位置,主表单上的一些复选框的状态等。我试图扩展QSettings类来执行此操作。
这是我到目前为止所做的:
appsettings.h
class AppSettings : public QSettings
{
Q_OBJECT
public:
explicit AppSettings(QObject *parent = 0);
void load();
void save();
bool getLinkState();
bool getFullState();
void setLinkState(bool state);
void setFullState(bool state);
signals:
public slots:
private:
int mainTop;
int mainLeft;
int mainWidth;
int mainHeight;
bool cbFullState;
bool cbLinkState;
}
appsettings.cpp
#include "appsettings.h"
#include <QDebug>>
AppSettings::AppSettings(QObject *parent) :
QSettings(parent)
{
load();
}
void load(){
qDebug() << "appSettings load()"" ;
}
void save() {
qDebug() << "appSettings save()"" ;
}
bool getLinkState() {
return cbLinkState;
}
bool getFullState() {
return cbFullState;
}
void setLinkState(bool state)
{
if (state == cbLinkState) return;
cbLinkState = state;
save();
}
void setFullState(bool state)
{
if (state == cbFullState) return;
cbFullState = state;
save();
}
mainwindow.cpp AppSettings * appSettings = AppSettings(&#34; MyOrgName&#34;,&#34; MyAppName);
cbLink->setChecked( appSettings->getLinkState() );
我不确定如何:
1)在主窗口中创建对象,以便将组织名称和应用程序名称传递给我继承的QSettings。我得到一个&#34;没有匹配功能&#34;在上面的主窗口代码的第一行编译错误。
2)如果我使用AppSettings类来存储(缓存)信息,如何只创建一次,并使其可以从其他窗口和类中获得。例如,我可能想要存储其他窗口的位置以及主窗口。