受到
非类型类模板参数的一个应用场景,封装QSettings
启发,写了一个简单的封装,感觉还是比较好用的。
#include <QSettings>
#include <QRect>
class Settings {
public:
static Settings *instance();
static const char KEY_LAST_OPEN_NOTE_PATH[];
static const char KEY_TYPORA_PATH[];
static const char KEY_SERVER_IP[];
static const char KEY_USER_ACCOUNT[];
static const char KEY_USER_PASSWORD[];
static const char KEY_USER_NAME_ZH[];
static const char KEY_USER_NAME_EN[];
static const char KEY_USER_REMEMBER_PASSWORD[];
static const char KEY_USER_AUTO_LOGIN[];
static const char KEY_USER_SIGNATURE[];
static const char KEY_MAIN_WINDOW_GEOMETRY[];
static const char KEY_SYNC_VERSION[];
static const char KEY_SYNC_WORKSHOP_AUTO[];
static const char KEY_SYNC_WATCHING_AUTO[];
static const char KEY_WATCHING_FOLDERS[];
template<const char *key>
struct QStringRef {
operator QString() const {
return settings()->