我正在尝试为应用程序创建一个全局设置提供程序。在一个很多不同的类中复制一个对象似乎很笨重。
当私有静态变量很简单时,我已经看到了这个方法的工作,就像一个整数,但我希望它适用于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();
}
我有没有办法实现这一目标,或者我是以错误的方式解决这个问题?
谢谢!
EDIT,
首先,它必须是:
static QSettings *settings;
我在.cpp中需要以下内容。
QSettings* Settings::settings = NULL;