统信DTK开发套件应用技术分享

近年来,信创产业发展迅猛,国产软硬件适配的需求日益增加,但国内CPU架构种类繁多,导致大量的适配投入。同时,由于底层代码质量不同、代码实现风格不统一等问题,造成自研操作系统的应用开发门槛高,应用生态严重缺失。

面对这种情况,统信软件专门推出一款帮助开发者快速实现跨平台跨架构的开发套件:DTK(Development ToolKit)。DTK是统信基于Qt开发的一整套简单且实用的通用开发框架,处于统信UOS系统中的核心位置,统信UOS浏览器、音乐、邮件等40余款原生应用全部使用DTK开发。DTK从开发者的角度出发,融合现代化的开发理念,提供丰富的开发接口与支持工具,满足日常图形应用、业务应用、系统定制应用的开发需求,提升开发效率,让开发者畅享跨平台、跨架构的开发体验。

统信软件同心生态联盟联合统信软件教育与考试中心将于2022年3月10日14:00-16:00,举办同心赋能·铸就未来第六期—统信DTK开发套件应用技术培训活动,采用线上腾讯会议(会议号:369-413-916)帮助更多的开发者从理论和实践的角度,了解“统信DTK开发套件应用技术”,解决开发者长久以来在自主软硬件平台开发的烦恼。

2019年伴随着deepin V20版本的开发,DTK也迎来了有史以来的最大改动,从此开始了DTK5.0时代。

 

DTK其实是多个项目的总称,它按功能角色划分了不同的模块,dtkcommon是所有模块的基础,它主要提供qmake相关的pri/prf文件,因为每个模块项目的目录结构都有许多共同点,比如都分了src、tools、tests这些子目录,并且都需求在编译期自动生成一些文件,还会定义一些文件的安装路径,为了方便统一的管理这些行为,遂将这些通用的与qmake构建相关的实现都放到了dtkcommon中实现,以便在其它模块编译时统一引用。

dtkcore包含了所有与图形不相关的实现,它的定位与Qt5的QtCore类似,提供了获取系统信息、监听文件系统、日志框架等功能。

dtkgui的定位是用来实现与图形相关且与具体的UI控件无关的基础功能,提供了如图形环境的主题读写功能,可以获取和设置鼠标光标的闪动速度、当前环境的文字大小等配置。

在这之外还封装了与窗口管理器交互的功能,比如获取窗口管理器的名称、为某个窗口设置开启背景模糊的功能,这些功能在DDE桌面环境中被大量使用。此外还提供一些与图形相关的工具类,此处不再详细展开。

dtkwidget建立在dtkgui之上,它主要包含两大部分内容,一是对Qt已有控件提供符合deepin设计的样式,在这个实现中,没有使用任何qss代码,而是对Qt更底层的部分进行覆盖,这样做的好处是:不影响使用DTK开发的程序使用qss来进行二次定义,对于一个开发库来说,这有非常大的意义。

另一方面,因为Qt已有的控件已经设计了很多年,对于现代化的应用程序来说,它缺少新鲜血液的注入,缺乏新控件,无法满足新型的现代化程序的开发,所以DTK还增加了一些新控件,比如“标签编辑框”、“窗口内部的消息通知”、“开关式切换按钮”等。此外对所有的控件(Qt中已有的和DTK中新增的),都统一了字体和颜色管理系统,使用dtkwidget开发的应用,都可以自动跟随图形环境的“亮色”和“暗色”主题设置,可以统一的响应系统字体大小改变,不用重启应用也可以实时看到效果。

qt5integration和qt5platform-plugins是为Qt编写的插件,为程序提供了对操作系统能力的封装,比如调用系统提供的文件选择对话框、为窗口自定义标题栏、设置窗口的圆角大小等功能。

这两个模块不会被应用程序直接使用,它们所提供的所有能力皆已经在dtkgui和dtkwidget中进行了封装,所以很好的屏蔽掉了程序对底层系统的强制依赖,使得DTK开发的程序可以轻松的迁移到其它平台。

DTK一键安装开发工具包
为了方便开发者开发 DTK 应用,我们已经将所有做 DTK 应用开发的软件包整合在了一个软件包里面,安装该包即可自动安装做 DTK 应用开发的环境,包括 libdtkwidget-dev, libdtkgui-dev, libdtkcore-dev,cmake,qtcreator,qtcreator-template-dtk,qt5-default,g++,git…等包。

安装开发环境
在目前的最新版 deepin 商店,已经上架了 DTK 开发工具包,在商店搜索 DTKIDE 即可看到

2022年3月10日14:00-16:00,将为您详细介绍DTK开发套件应用技术,采用线上腾讯会议(会议号:369-413-916)帮助更多的开发者从理论和实践的角度,了解“统信DTK开发套件应用技术”,解决开发者长久以来在自主软硬件平台开发的烦恼。
————————————————
版权声明:本文为CSDN博主“蔚颖willing”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接://blog.csdn.net/willingpoint/article/details/123376406