DtkCore
DTK Core module
载入中...
搜索中...
未找到
dsettings.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2016 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#pragma once
6
7#include <QObject>
8#include <QPointer>
9#include <QScopedPointer>
10
11#include "dtkcore_global.h"
12
13DCORE_BEGIN_NAMESPACE
14
15class DSettingsBackend;
16class DSettingsOption;
17class DSettingsGroup;
18class DSettingsPrivate;
19class LIBDTKCORESHARED_EXPORT DSettings : public QObject
20{
21 Q_OBJECT
22public:
23 explicit DSettings(QObject *parent = Q_NULLPTR);
24 ~DSettings();
25
26 void setBackend(DSettingsBackend *backend = nullptr);
27
28 static QPointer<DSettings> fromJson(const QByteArray &json);
29 static QPointer<DSettings> fromJsonFile(const QString &filepath);
30 QJsonObject meta() const;
31
32 QStringList keys() const;
33 QList<QPointer<DSettingsOption>> options() const;
34 QPointer<DSettingsOption> option(const QString &key) const;
35 QVariant value(const QString &key) const;
36
37 QStringList groupKeys() const;
38 QList<QPointer<DSettingsGroup>> groups() const;
39 QPointer<DSettingsGroup> group(const QString &key) const;
40
41 QVariant getOption(const QString &key) const;
42
43Q_SIGNALS:
44 void valueChanged(const QString &key, const QVariant &value);
45
46public Q_SLOTS:
50 void sync() ;
51
52 void setOption(const QString &key, const QVariant &value);
53 void reset() ;
54
55private:
56 void parseJson(const QByteArray &json);
57 void loadValue();
58
59 QScopedPointer<DSettingsPrivate> dd_ptr;
60 Q_DECLARE_PRIVATE_D(qGetPtrHelper(dd_ptr), DSettings)
61};
62
63DCORE_END_NAMESPACE
DSettingsBackend是一个配置存储类的接口
Definition dsettingsbackend.h:16
DSettings是设计上为Dtk的应用程序提供统一的配置存储以及界面生成工具的基础库。
Definition dsettings.h:20
QStringList keys() const
返回全部键值
QVariant value(const QString &key) const
获取 key 对应的值
static QPointer< DSettings > fromJson(const QByteArray &json)
从 json 中获取 DSettings,返回的数据使用之后需要自己手动释放。
void setBackend(DSettingsBackend *backend=nullptr)
设置存储后端
QPointer< DSettingsOption > option(const QString &key) const
获取 key 对应的值
QStringList groupKeys() const
返回子组全部键值
DSettings(QObject *parent=Q_NULLPTR)
DSettings构造函数
QVariant getOption(const QString &key) const
获取 key 对应的值
static QPointer< DSettings > fromJsonFile(const QString &filepath)
从 json 文件中获取 DSetting。
QList< QPointer< DSettingsGroup > > groups() const
返回子组全部 key 的值
void reset()
重置键值
QList< QPointer< DSettingsOption > > options() const
返回全部 key 的值
QJsonObject meta() const
返回JSON对象
QPointer< DSettingsGroup > group(const QString &key) const
DSettings::group将递归找到子组
void setOption(const QString &key, const QVariant &value)
设置键值
void sync()
sync WARNING: sync will block