我正在尝试为应用程序创建全局设置提供程序。在这么多不同的类中复制一个对象似乎很笨重。
当私有静态变量很简单(例如整数)时,我已经看到此方法有效,但我希望它适用于 QSettings — 一个对象。
// settings.h
class Settings {
public:
static void Initialize();
static int serverRefreshRate();
private:
QSettings *settings;
};
// settings.cpp
#include "Server/settings.h"
void Settings::Initialize() {
Settings::settings = new QSettings(/* etc */);
}
int Settings::serverRefreshRate() {
return settings->value("server/refreshRate", 10000).toInt();
}
有没有办法可以实现这一目标,还是我以错误的方式去做?
谢谢!
编辑,
首先,它必须是:
static QSettings *settings;
我需要.cpp中的以下内容。
QSettings* Settings::settings = NULL;