[DTK] 关于DTK的演进,实际上html+CSS等标记语言已经给出最合适的方式
Tofloor
poster avatar
deepin
2023-08-04 03:05
Author

关于DTK,实际上deepin现在正在不断的拓展,寻找更多适合国内应用软件开发编程方式。比如,接近QT模式的DTK Core、DTK Widget、DTK Gui,类似QML的DTK Declarative。

这两种开发模式都有各自优点:
ef561b4a469fb11b8afb999f34aaf0fb.png
1.DTK Core、DTK Widget、DTK Gui,这种类似Qt的套件都是主要有C/C++代码实现,性能很高;

2.类似QML的DTK Declarative,软件窗口界面的排版和编写非常方便,但是运行性能上比DTK Widget差。

那么,能不能折中一下,我们可不可继续对DTK Widget进行封装一下,就是DTK Widget相关组件,可以重新进行封装。

DTK封装的模式,尽量与现在的Html+CSS的规范一致,比如button的事件处理、button的布局样式调整、动画处理等等。


自定义控件Button-效果展示

20210327191244244.gif

如上图,鼠标移动到窗口中的Button-Haihong Pros时,Button的框体内从“”变为“”,button的字体颜色从“”变为“”。

这种组件的样式变化以及点击事件,都需要对Button进行很好的封装才行。

image.png

image.png

可以看到,Html非常简单在文本中编写出button组件,然后用class标记了button的样式和鼠标点击后的效果,而鼠标实际相关的事件动作内容我们是无法看到的,这说明Html+CSS在底层封装的很好。不像QT现在还要重复调用QMouseEvent,重写相关代码实现事件的处理过程。

也就是说,Html+CSS在底层已经把QMouseEvent相关事件与其进行很好绑定,因为很多点击事件在功能上都是相同的,且执行流程也一致,没必要重复性让程序员再去实现。

从我个人的看法,其意思也非常简单,那就是QT/DTK在进行事件处理时,可以让编程人员不再编写QMouseEvent相关事件内容,而是直接调用组件时就附带有相关事件的处理,如果不能满足自己的需求,可以在封装的代码中继续添加相关内容。

还有一点,那就是CSS相关的样式设置,也可以在其他组件中进行重复利用,这也能减轻软件开发者的工作量


最后,DTK确实正在不断演变、扩充更多开发编程方式,但是关于DTK Core、DTK Widget、DTK Gui的进一步封装还是非常有必要的,如果让编程人员快速上手、快速编译调试等等都是可以改进的最好方式。

(**以上内容,纯属个人观点,本人主要目的是为了减轻DTK/QT的工作量,如果DTK Widget中的组件名都改成HTML中的标记语言属性名也不错,如有异议,可在评论区讨论)

Reply Favorite View the author
All Replies
wlly-lzh
deepin
2023-08-04 03:38
#1

在下只是好奇要如何进行封装,请阁下封装一部分代码给我们看看。

没有喷哦!

Reply View the author
deepin
2023-08-04 03:55
#2
wlly-lzh

在下只是好奇要如何进行封装,请阁下封装一部分代码给我们看看。

没有喷哦!

案例很多,网上有的是Qt相关的组件封装案例,自己可以找。

Reply View the author
fuuko
deepin
2023-08-04 15:11
#3

话说你用没用过DTK啊doubt

那玩意儿就是封装了一堆样式的Qt控件库+deepin/uos专用API库,目标就是方便用户能快速开发出与系统主题相符合的GUI软件,同时还能快速调起deepin/uos的专有功能doubt

你说的这些东西DTK里面早就封装好了,甚至还能和控制中心的什么主题色、亮色暗色切换进行快速的联动doubt

Reply View the author
pgxppp
deepin
2023-08-04 18:38
#4
fuuko

话说你用没用过DTK啊doubt

那玩意儿就是封装了一堆样式的Qt控件库+deepin/uos专用API库,目标就是方便用户能快速开发出与系统主题相符合的GUI软件,同时还能快速调起deepin/uos的专有功能doubt

你说的这些东西DTK里面早就封装好了,甚至还能和控制中心的什么主题色、亮色暗色切换进行快速的联动doubt

估计是不会用

Reply View the author
方老四
deepin
2023-08-04 23:57
#5

QT等图形库迟早要成为昨日黄花!在嵌入式领域还有市场

Reply View the author
arkui-x
deepin
2023-08-05 00:00
#6
The user is banned, and the content is hidden.
deepin
2023-08-05 00:00
#7
方老四

QT等图形库迟早要成为昨日黄花!在嵌入式领域还有市场

Linux软件开发的选择面太少了

Reply View the author
arkui-x
deepin
2023-08-05 00:00
#8
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 00:01
#9
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 00:03
#10
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 00:14
#11
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 00:16
#12
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 00:18
#13
The user is banned, and the content is hidden.
redmibook
deepin
2023-08-05 00:53
#14
arkui-x
The user is banned, and the content is hidden.

小公司用 Qt,写的工具开源,无法律风险。
至于说像 Deepin 这样体量的公司,买个正版授权也没有什么压力。
用 Qt 做信创,现在就是大势所趋,可能这个趋势会持续 20 年左右,直到中国在硬件方面抹平自己缺失的部分。
怎么总幻想着有一个现成的,可靠的,还高性能的方案随意白嫖呢?

Reply View the author
redmibook
deepin
2023-08-05 00:58
#15
arkui-x
The user is banned, and the content is hidden.

鸿蒙除了华为自己在搞之外,并无任何第三方实际参与。
不会有任何一个决策者,会把自己的技术选型与华为这家公司绑定的,放心吧。

Reply View the author
软件技术就是生产力
deepin
2023-08-05 04:13
#16
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 04:38
#17
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 04:40
#18
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 04:42
#19
The user is banned, and the content is hidden.
arkui-x
deepin
2023-08-05 04:44
#20
The user is banned, and the content is hidden.