[DTK] DTK的QML扩展版-dtkdeclarative,未来发展的方向和趋势
Tofloor
poster avatar
deepin
2023-05-22 23:06
Author

image.png
曾在论坛中曾发表过几篇关于QML的帖子,这也让论坛中有些人不太看好,但是deepin官方在DTK开发文档中正式发布了dtkdeclarative之后,我更加坚定了QML会更多应用于软件前端界面的开发。

那么,QML现在到底好不好用呢?

我自己实际上手操作了几天,确实比现在C++的QWight要好使,正如官方文档中所提到的一些优点,如代****码量少树形结构规范减少QtWidget编程中信号槽链接的繁琐程度。但是,这并不是说QML的代码量真的变少,而是面对复杂的界面布局、操作事件,前端界面开发的工作量依然很大,QML需要分很多阶段进行不断演化和封装。

根据自己在以前在互联网公司开发项目的经历,QML/dtkdeclarative其演进封装可分为三个阶段:

1.模块组合
image.png
所谓的模块组合,是指QML的模块组件在功能上比较单一,需要重新把QML的一些模块进行更多组合和多样式的定制。比如,QML中原生的button按钮都不带“提示信息”,你需要重新布局,把button和Tooltip这两个模块进行重新组合,封装为一个新的TipButton(带提示信息的按钮)。我的意思也非常简单,就是Tooltip这个模块与Button组合后,它们的属性都能在新的TipButton模块中被简单使用。

2.工具包
image.png
当组合的模块越来越多之后,我们会对界面设计、界面UI风格有整体要求之后,前端工程师和UI会对组合模块进行汇总封装。通过优化好的组合模块整合成为一个新的资源包,组合的各类模块资源不在分散,前端界面也能现成使用。比如easyUI、Bootstrap.

3.框架定制
image.png
当QML的工具包能够让你很快写软件界面后,你现在需要对接业务代码,比如对接python、js webkit、C++等编程语言的路由、API等等,这个在互联网web平台开发很常见,形成框架机制可以让前后端都能够成熟的处理事件。比如,前端框架Vue.js、rect.js等等。

结语:

DTK中的dtkdeclarative的出现,标志着QML已经被深度deepin认可为软件界面开发的一种有前途的脚本语言。尽管现在上手会感觉界面布局量不小,但它后期仍能继续进化。从模块的多样组合、资源包的形成、框架的定制,已经决定了QML在软件前端的前途不可限量。

Reply Favorite View the author
All Replies
fuuko
deepin
2023-05-23 01:10
#1

doubt要不你先用QML把deepin里面的那个看图自己开发一遍再说,反正那玩意儿就挺简单一界面,记得同时兼容触摸屏和鼠标

Reply View the author
wlly-lzh
deepin
2023-05-23 02:18
#2

楼上说的对,你自己先试试,最好写出一个软件来让大家看看好不好用。

你这样发帖大家又看不懂,也不能实际体会,没有太多说服力。

Reply View the author
deepin
2023-05-23 02:37
#3
fuuko

doubt要不你先用QML把deepin里面的那个看图自己开发一遍再说,反正那玩意儿就挺简单一界面,记得同时兼容触摸屏和鼠标

鼠标不能用吗?

Reply View the author
fuuko
deepin
2023-05-23 02:40
#4

鼠标不能用吗?

你说这句话就表示你压根儿就没用过QML,完全是在尬吹doubt

Reply View the author
deepin
2023-05-23 02:42
#5
fuuko

你说这句话就表示你压根儿就没用过QML,完全是在尬吹doubt

qml,我现在在用,你不要老是说不行。deepin官方都在用。

Reply View the author
DebuggerX
deepin
2023-05-23 03:44
#6

QML当然是QT的未来没毛病。

只不过是QT没什么未来罢了。

Reply View the author
deepin
2023-05-23 04:21
#7
DebuggerX

QML当然是QT的未来没毛病。

只不过是QT没什么未来罢了。

QT没有未来,那为什么嵌入式行业仍在大量使用。

Reply View the author
fuuko
deepin
2023-05-23 16:21
#8

qml,我现在在用,你不要老是说不行。deepin官方都在用。

你看看你写的是什么程序?你之前的例子全是手机软件,deepin是手机操作系统还是嵌入式操作系统?doubt

以及官方出的QML程序是什么吊样子你没看出来么?就那几个QML程序,被它们原来的widgets版本吊起来暴打好吧,要性能没性能,要操作没操作,就是一坨屎doubt

Reply View the author
fuuko
deepin
2023-05-23 16:23
#9

QT没有未来,那为什么嵌入式行业仍在大量使用。

啊对对对,deepin是适合跑在小型嵌入式设备上的操作系统doubt

Reply View the author
deepin
2023-05-23 17:32
#10
fuuko

啊对对对,deepin是适合跑在小型嵌入式设备上的操作系统doubt

嵌入式领域都搞不了,那肯定干不过ubuntu。

Reply View the author
wlly-lzh
deepin
2023-05-23 18:02
#11

嵌入式领域都搞不了,那肯定干不过ubuntu。

confused

deepin的定位就是桌面操作系统呀,不会有人在嵌入式硬件上跑deepin吧?

Reply View the author
deepin
2023-05-23 18:06
#12
wlly-lzh

confused

deepin的定位就是桌面操作系统呀,不会有人在嵌入式硬件上跑deepin吧?

服务器系统桌面都能用dde,嵌入式领域为啥不能用。

Reply View the author
wlly-lzh
deepin
2023-05-23 19:21
#13

服务器系统桌面都能用dde,嵌入式领域为啥不能用。

deepin是deepin,dde是dde,你不要弄混了。

而且服务器和嵌入式又是两个不同的领域。

deepin不是为嵌入式设计的,也没有必要用嵌入式设备跑deepin。

Reply View the author
deepin有温度
deepin
2023-06-17 18:04
#14

桌面环境是桌面环境,qml用来开发轻量级应用没任何问题,重型的就是不行

Reply View the author