Documentation Documentation
主页
指南
DTK
经验分享
社区作品
关于
  • 简体中文
  • English
  • Español
GitHub (opens new window)

Deepin

Deepin 社区文档
主页
指南
DTK
经验分享
社区作品
关于
  • 简体中文
  • English
  • Español
GitHub (opens new window)
  • Dtk文档总集合
  • 接口changelog
  • UOS-Deepin 中配置 DTK 开发环境
  • Dtk的历史起源、发展,和简单入门
  • Dtkcore提供的单例类DSingleton的用法
  • Dtk自动保存主题
  • 主题相关知识集锦
  • Dtk播放系统音效
  • 如何实现单例进程
  • DSettingsDialog使用json创建对话框及其国际化
  • DLabel的ElideMode
  • Dtkcore的DExportedInterface接口的用途
  • 判断是否社区版、如何显示 Logo 以及获取发行版名称
  • Dtk 前期准备、绘画 Qt 自带控件、创建及绘画自定义控件
  • Dtk 常用、测试代码片
  • 使用 DDesktopEntry 解析 desktop 文件
  • Dtk加载翻译文件
  • Dtk 日志管理
  • Dtk相关配置目录
  • DTK 对 pkg-config 命令的支持
  • DDesktopServices的使用
  • Dtk汉字转拼音
  • 清空回收站
  • DPathBuf拼接路径
  • 如何调用外部程序
  • DAnchors的使用
  • DBlurEffectWidget的使用
  • 窗口模糊效果
  • Codeanalysis工具的使用
  • 代码格式化脚本pre-commit
  • Qt5 GUI程序界面启动耗时统计工具
  • Scrollbar 设置为上下(左右)不到顶端
  • DAbstractUnitFormatter 单位格式化工具
  • Dtk-translate工具
  • DSettings 工具
    • DSettings 类
      • 作用
      • 例子
    • DSettings 相关类
  • Deepin-os-release 工具
  • Dlistview DViewItemActionsetwidget 用法
  • DTK问题判定方法
  • 题栏菜单没有「帮助」菜单项
  • DBackgroundGroup 移除一项后,下边的圆角没有刷新
  • 在标题栏拖动鼠标出现无法拖动窗口的问题
  • 锁屏状态下音乐播放控件状态异常
  • 应用图标异常
  • 为什么bug状态为已解决,验证依旧不通过
  • 为何我的标题栏右键菜单的背景色与应用窗口颜色不一致
  • DTK 基础教程:自定义控件规范
  • 制作 dde-control-center 插件
  • DTK
Deepin | Any developer
2020-12-11

DSettings 工具

DSettings 工具

# DSettings 类

# 作用

DSettings是设计上为Dtk的应用程序提供统一的配置存储以及界面生成工具的基础库。DSetting使用json作为应用配置程序的描述文件。简单来说,应用查询的配置分为组/键值二个基础层级,对于一个标准的Dtk配置控件,一般只包含组/子组/键值三个层级,对于超过三个层级的键值,可以通过DSettings的API接口进行读取和写入,但是不能在标准的DSettingsDialogs上显示出来。

# 例子

一个简单的 json 配置文件如下:

{
    "groups": [{
        "key": "base",
        "name": "Basic settings",
        "groups": [{
                "key": "open_action",
                "name": "Open Action",
                "options": [{
                        "key": "alway_open_on_new",
                        "type": "checkbox",
                        "text": "Always Open On New Windows",
                        "default": true
                    },
                    {
                        "key": "open_file_action",
                        "name": "Open File:",
                        "type": "combobox",
                        "default": ""
                    }
                ]
            },
            {
                "key": "new_tab_windows",
                "name": "New Tab & Window",
                "options": [{
                        "key": "new_window_path",
                        "name": "New Window Open:",
                        "type": "combobox",
                        "default": ""
                    },
                    {
                        "key": "new_tab_path",
                        "name": "New Tab Open:",
                        "type": "combobox",
                        "default": ""
                    }
                ]
            }
        ]
    }]
}

该组中包含一个base的root组,两个子组: open_action/new_tab_windows,每个子组有包含若干选项。对于"New Window Open:"这个配置,其完整的访问id为base.new_tab_windows.new_window_path。读取/设置其值的 c++ 示例如下:

// 初始化一个存储后端
QTemporaryFile tmpFile;
tmpFile.open();
auto backend = new Dtk::Core::QSettingBackend(tmpFile.fileName(
// 从json中初始化配置
auto settings = Dtk::Core::DSettings::fromJsonFile(":/resources/data/dfm-settings.json");
settings->setBackend(backen
// 读取配置
auto opt = settings->option("base.new_tab_windows.new_window_path");
qDebug() << opt->value
// 修改配置
opt->setValue("Test")
qDebug() << opt->value();

# DSettings 相关类

  1. Dtk::Core::DSettingsOption
    

    DSettingsOption是DSettings的基本单元,用于存放一对键-值数据。

  2. Dtk::Core::DSettingsGroup
    

    一组DSettings选项的集合,也可以包含子组。

  3. Dtk::Core::Core::DSettingsBackend
    

    DSettingsBackend是一个纯虚类, 用来描述DSettings的存储接口。

  4. Dtk::Widget::DSettingsWidgetFactory
    

    DSettingsWidgetFactory是一个用于构造UOS风格的设置对话框的控件。对于每种控件,均由一个id和对应的构造函数来组成,DSettingsWidgetFactory内置了许多基础的控件,包括:checkbox/lineedit/combobox/spinbutton/buttongroup/radiogroup/slider等。

  5. Dtk::Widget::DSettingsDialog
    

    为使用DSettings的Dtk程序提供一个通用的设置对话框,这个对话框可以通过json配置文件来自动生成。

帮助编辑此页 (opens new window)
上次更新: 12/17/2020, 2:23:36 AM
Dtk-translate工具
Deepin-os-release 工具

← Dtk-translate工具 Deepin-os-release 工具→

Theme by Vdoing | Copyright © 2020-2021 Deepin | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式