扩展QSettings以加载/存储应用程序设置

时间:2015-01-30 10:44:18

标签: qt

我试图在设置文件中保留一些特定于应用程序的信息。信息,如表单大小和位置,主表单上的一些复选框的状态等。我试图扩展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类来存储(缓存)信息,如何只创建一次,并使其可以从其他窗口和类中获得。例如,我可能想要存储其他窗口的位置以及主窗口。

0 个答案:

没有答案