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相关配置目录
    • DSysInfo涉及到的枚举
    • 系统信息相关配置文件
      • /usr/share/deepin/distribution.info
      • /etc/os-release或/usr/lib/os-release
      • /etc/lsb-release
      • /etc/deepin-version
      • /etc/os-version
    • 获取系统信息的接口
    • 获取系统硬件信息
      • 获取硬件信息接口
  • DTK 对 pkg-config 命令的支持
  • DDesktopServices的使用
  • Dtk汉字转拼音
  • 清空回收站
  • DPathBuf拼接路径
  • 如何调用外部程序
  • DAnchors的使用
  • DBlurEffectWidget的使用
  • 窗口模糊效果
  • Codeanalysis工具的使用
  • 代码格式化脚本pre-commit
  • Qt5 GUI程序界面启动耗时统计工具
  • Scrollbar 设置为上下(左右)不到顶端
  • DAbstractUnitFormatter 单位格式化工具
  • Dtk-translate工具
  • DSettings 工具
  • Deepin-os-release 工具
  • Dlistview DViewItemActionsetwidget 用法
  • DTK问题判定方法
  • 题栏菜单没有「帮助」菜单项
  • DBackgroundGroup 移除一项后,下边的圆角没有刷新
  • 在标题栏拖动鼠标出现无法拖动窗口的问题
  • 锁屏状态下音乐播放控件状态异常
  • 应用图标异常
  • 为什么bug状态为已解决,验证依旧不通过
  • 为何我的标题栏右键菜单的背景色与应用窗口颜色不一致
  • DTK 基础教程:自定义控件规范
  • 制作 dde-control-center 插件
  • DTK
Deepin | Any developer
2020-12-11

Dtk相关配置目录

# DSysInfo涉及到的枚举

// 产品类型
enum ProductType {
    UnknownType = 0,
    Deepin,
    ArchLinux,
    CentOS,
    Debian,
    Fedora,
    LinuxMint,
    Manjaro,
    openSUSE,
    SailfishOS,
    Ubuntu,
    Uos
}

// 系统类型
enum DeepinType {
    UnknownDeepin = 0,
    DeepinDesktop,         //桌面版
    DeepinProfessional,    //专业版
    DeepinServer,          //服务器版
    DeepinPersonal         //个人版
}
以上两个枚举将废弃。

// Logo类型
enum LogoType {
    Normal = 0,
    Light,
    Symbolic,
    Transparent
}

enum OrgType {
    Distribution, //!< distribution itself
    Distributor, //!< distributer of the current distribution
    Manufacturer //!< manufacturer of the current distribution or device
};

enum UosType {
    UosTypeUnknown,
    UosDesktop,
    UosServer,
    UosDevice,

    UosTypeCount // must at last
};

enum UosEdition {
    UosEditionUnknown,
    UosProfessional,
    UosHome,
    UosCommunity,
    UosMilitary,
    UosEnterprise,
    UosEnterpriseC,
    UosEuler,
    UosMilitaryS, // for Server

    UosEditionCount // must at last
};

// 注意:此处架构是从OsBuild获取的系统版本的Arch信息,并不是指硬件的Arch信息
enum UosArch {
    UosArchUnknown,
    UosAMD64 = 1 << 0,
    UosARM64 = 1 << 1,
    UosMIPS64 = 1 << 2,
    UosSW64 = 1 << 3
};

具体的版本定义及规范见


# 系统信息相关配置文件

# /usr/share/deepin/distribution.info

distribution.info文件内容类似下面这样:

[Distribution]
Name=UOS
WebsiteName=www.chinauos.com
Website=https://www.chinauos.com
Logo=/usr/share/deepin/distribution/distribution_logo.svg
LogoLight=/usr/share/deepin/distribution/distribution_logo_light.svg
LogoTransparent=/usr/share/deepin/distribution/distribution_logo_transparent.svg

# /etc/os-release或/usr/lib/os-release

os-release文件内容类似下面这样:

PRETTY_NAME="UOS 20 Home"
NAME="uos"
VERSION_ID="20 Home"
VERSION="20 Home"
ID=uos
HOME_URL="https://www.chinauos.com/"
BUG_REPORT_URL="http://bbs.chinauos.com"

主要是从PRETTY_NAME、VERSION_ID、ID读取信息。

# 需要从os-release读取信息的接口

1、bool DSysInfo::isDeepin() // 根据ID判断是否是Deepin或者uos
2、QString DSysInfo::operatingSystemName() // 返回PRETTY_NAME的值
3、DSysInfo::ProductType DSysInfo::productType() // 返回ID对应的信息
4、QString DSysInfo::productVersion() // 返回VERSION_ID的值
5、QString DSysInfo::productTypeString() // 返回ID对应的信息

# /etc/lsb-release

lsb-release文件内容类似下面这样:

DISTRIB_ID=uos
DISTRIB_RELEASE=20
DISTRIB_DESCRIPTION="uos 20"
DISTRIB_CODENAME=plum

主要是从DISTRIB_ID、DISTRIB_RELEASE、DISTRIB_DESCRIPTION读取信息。

# 需要从os-release读取信息的接口

1、bool DSysInfo::isDeepin() // 根据DISTRIB_DESCRIPTION判断是否是Deepin或者uos
2、QString DSysInfo::operatingSystemName() // 返回DISTRIB_ID的值
3、DSysInfo::ProductType DSysInfo::productType() // 返回DISTRIB_DESCRIPTION对应的信息
4、QString DSysInfo::productVersion() // 返回DISTRIB_RELEASE的值
5、QString DSysInfo::productTypeString() // 返回DISTRIB_DESCRIPTION对应的信息

# /etc/deepin-version

/etc/deepin-version将废弃,被下面讲的os-version取代。


# /etc/os-version

os-version文件包含的内容信息:

1、系统版本域。
2、系统名称。
3、系统类型,分为桌面和服务器两种。
4、版本名称,桌面分为专业版、个人版、社区版、军用版、专用设备,服务器分为企业版、行业版、欧拉版、军用版。
5、主版本号,按公司产品规划有【20】【23】【25】【26】【29】【30】。
6、小版本号。
7、OS Build。

# 获取系统信息的接口

1、DSysInfo::UosType DSysInfo::uosType() // 获取系统类型,根据OS Build判断
2、DSysInfo::UosEdition DSysInfo::uosEditionType() // 获取版本类型
3、DSysInfo::UosArch DSysInfo::uosArch() //获取架构信息
4、QString DSysInfo::uosProductTypeName(const QLocale &locale) // 获取系统类型,根据locale来返回对应的字符串,比如英文的话可能返回的是"Desktop"/"Server"/"Device"
5、QString DSysInfo::uosSystemName(const QLocale &locale) // 获取系统名称,比如英文的话返回"Uniontech OS"
6、QString DSysInfo::uosEditionName(const QLocale &locale) // 获取版本名称,比如英文的话返回"Professional"/"Home"/"Community"...
7、QString DSysInfo::spVersion() // 获取阶段版本名称
8、QString DSysInfo::udpateVersion() // 获取更新版本名称
9、QString DSysInfo::majorVersion() // 获取主版本号
10、QString DSysInfo::minorVersion() // 获取小版本号
11、QString DSysInfo::buildVersion() // 获取OS Build

# 获取系统硬件信息

系统硬件信息主要是通过读取/proc下的相关文件获取的,大致如下:

1、cpu信息:/proc/cpuinfo
2、存储设备信息:通过命令lshw、lsblk获取。

# 获取硬件信息接口

1、QString DSysInfo::computerName() // 获取计算机名
2、QString DSysInfo::cpuModelName() // 获取cpu型号
帮助编辑此页 (opens new window)
上次更新: 1/7/2021, 8:45:04 AM
Dtk 日志管理
DTK 对 pkg-config 命令的支持

← Dtk 日志管理 DTK 对 pkg-config 命令的支持→

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