[Share Experiences] UOS/Deepin 中配置 DTK 开发环境
Tofloor
poster avatar
偕臧
deepin developers team
2021-01-06 22:50
Author

简 述: 有人问,DTK 怎么配置开发环境? 我头上有呆毛了,,,又水一篇,确实没想到问的人会有这么多。

准备开启开发者模式配置DTK 开发环境验证验证 C++ 开发环境 配置是否成功:验证 DTK 开发环境 配置是否成功:验证其它项目命令配置更新个人习惯系列地址:

本文初发于 偕臧 https://xmuli.tech,同步转载于此。

 

PS: 已投稿到 docs.deepin.org 

准备

在官网下载 uniontechos-desktop-20-professional-1030-fix_amd64 镜像(或找测试小仙女们要一个最新的),常规装系统后,顺利进入到桌面;

开启开发者模式

进入 控制中心-通用-开发者模式-进入开发者模式 ,激活开发者模式成功后,重启系统;

 

配置DTK 开发环境

将第二行的 deb-src 的注释解开,更新源(若使用内网源,下载某些软件失败,记得换源),最后外网镜像默认自带的源如下

## Generated by deepin-installer
deb [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
deb-src [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free

看了一下,默认 gcc = 4.8.3,无 g++ 、无 cmake、无 git;

# 更新源
sudo apt update

# C++ 开发环境配置好了
sudo apt install qt5-default qtcreator cmake g++ git

# DTK 开发环境配置好了
sudo apt install libdtkwidget-dev libdtkgui-dev libdtkcore-dev

验证

验证 C++ 开发环境 配置是否成功:

  • 开 QtCreator ,创建一个空的 Qt 空项目,执行运行,发现 C++ 开发环境 配置成功。

     

验证 DTK 开发环境 配置是否成功:

  • 执行 git clone https://github.com/linuxdeepin/dtkcore.git, 下载源码

  • 进入文件夹 dtkcore, 执行 sudo apt build-dep dtkcore 生成依赖

  • 执行 sudo apt policy libdtkcore5,看到本机显示 libdtkcore5 为 5.4.0

  • 执行 git checkout 5.4.0 切换分支

  • 用 QtCreator 打开 dtkwidget.pro, 点击编译运行,为 DTK 开发环境 配置成功。

     

验证其它项目

如验证 dtkwidget 开发项目,因为其依赖于 dtkcoredtkgui,所以推荐配置其对应的 tag 这三者是一致的(一般来说,都是各自最新也不会有什么问题,向下兼容很稳定了)。

dtkwidget 若是运行在虚拟机,若是内存仅 2G,会编译失败;调整为 >= 4G 即可;若是其它项目生成项目依赖,也都是如此。

sudo apt build-dep 项目名  # 生成项目依赖

比如 dtkwidget 运行后:

 

 

命令配置更新

为了便于配置 DTK 的开发环境,也可直接执行如下:

# deepin-sdk 为虚包,相当于安装 libdtkwidget-dev libdtkgui-dev libdtkcore-dev 
# 为自动生成 DTK 项目模板
sudo apt install deepin-sdk qtcreator-template-dtk

个人习惯

附上个人习惯的开发环境,可自行决定:

# gammaray: 安装 Qt 调试工具 
# flameshot: 安装截图工具
# com.notepadqq.notepadqq: 安装 notepadqq; "设置-首选项-外观"选择duotone-light
# gitg: git 可视化工具


# 商店里面安装讯飞输入法、typora、wps(或官网里面的)
sudo apt install gammaray flameshot com.notepadqq.notepadqq tree gitg

sudo apt source qt5-default   // qt源码包,此会安装在当前所处目录下,建议更换目录再执行

同时安装 dde-dock 网速插件: lfxspeedlfxNet

附:

系列地址:

QtExamples

欢迎 star 和 fork 这个系列的 QT / DTK 学习,附学习由浅入深的目录。

Reply Favorite View the author
All Replies
liwl
deepin
2021-01-06 22:56
#1

大佬,我看了你的博客了,赞的。我已经成功运行dtkdamo了,慢慢学习中。

一开始在物理机搞,结果搞蹦了。重新安装了系统,在虚拟机里面搞起了。

Reply View the author
deepin-mq
deepin
2021-01-06 23:50
#2

大佬搞起英文的版本哦。。

Reply View the author
element
deepin
2021-01-07 00:32
#3

这个可以好好的学学

Reply View the author
lcw0268
deepin
2021-01-07 03:35
#4

文字我都认得,就是C++

Reply View the author
偕臧
deepin developers team
2021-01-08 04:41
#5
deepin-mq

大佬搞起英文的版本哦。。

有空整

Reply View the author
偕臧
deepin developers team
2021-01-08 04:41
#6
liwl

大佬,我看了你的博客了,赞的。我已经成功运行dtkdamo了,慢慢学习中。

一开始在物理机搞,结果搞蹦了。重新安装了系统,在虚拟机里面搞起了。

一起学习

Reply View the author
Maicss
deepin
2021-01-10 21:54
#7

cmake怎么引入dtk呢,没自己用过cmake,但是编译一些项目的时候修改需要用到,请教一下

Reply View the author
偕臧
deepin developers team
2021-01-22 05:28
#8
Maicss

cmake怎么引入dtk呢,没自己用过cmake,但是编译一些项目的时候修改需要用到,请教一下

可参考于:https://github.com/xmuli/lfxSpeed/blob/4cca27996084f2e9f911d0d7f24fdb2f7619ce8c/CMakeLists.txt#L29

find_package(Qt5Widgets REQUIRED)
find_package(DtkWidget REQUIRED)

 

find_package(PkgConfig REQUIRED)
pkg_check_modules(DdeDockInterface REQUIRED dde-dock)



然后包含对应的 DTK 宏(DWIDGET_USE_NAMESPACE 之类)即可

可以参考 lfxSpeed 项目的 cmake (主要采用 DTK 编写);
或者重构后的  lfxNet 项目的cmake (主要使用 原生 Qt 控件,子部分采用 DTK 模块)

Reply View the author
十九黎夏
deepin
2022-06-07 22:53
#9

请问一下,怎么把窗口背景设置成“透明”?

Reply View the author
十九黎夏
deepin
2022-06-07 22:54
#10
十九黎夏

请问一下,怎么把窗口背景设置成“透明”?

QWidget怎么设置窗口背景透明?

Reply View the author