[DTK] C++太繁琐?快来一起给QtQuick(QML)适配dtk风格的控件!
Tofloor
poster avatar
Rubbish
deepin
2021-07-04 21:13
Author

项目地址:QtQuick-DTK-style

先来安利一下QtQuick。之前用C++写传统的qwidget,随便一个可复用控件都需要新建一个类,C++强大的功能在写GUI方面有时有些大材小用,还可能出现内存泄漏。而pyqt虽然比C++简单但还是指令式的语言,表现能力没有那么强大。相比之下QtQuick与前端框架类似,支持组件式声明,支持ECMAScript,容易集成动效,性能优于Electron等,不需要经过长时间的编译即可看到结果,对GUI开发非常友好。

而在与dtk的适配方面,QtQuick还有一个优势就是能与C++很好地交互,这也为调色板、明暗主题的适配提供了很大的便利。

目前已经适配的有约13/50+个QtQuick.controls控件,都在下图展示了,并且为一些控件添加了dtk中没有的动效,比如switch button。此外还添加了qml没有的控件LCDNumber,就是不知道怎么通过import直接导入。明暗主题、主题色都和原生dtk一样,能自适应、自动重绘。

细节方面,由于没有dtkwidget的完整设计规格,圆角尺寸、灰色的具体colorType、使用到的icon还有待完善,但应该问题不大。窗口变成inactive状态的信号不知道怎么捕获,所以会一直以active的颜色显示。比较大的问题在于窗口背景模糊,这个google了很久没发现怎么支持,还需要研究。

使用方面,目前还在开发阶段,可以直接把example工程拿来改,注意不要删除cpp里的setContextProperty,后面应该会做成更易于导入的形式。

下面是实测效果图,可能是screen-recorder有些问题导致图形有点花,注意动效。

效果图

 

欢迎大家使用,希望各位和社区支持!

Reply Favorite View the author
Comments
poster avatar
乾一庚五
2021-07-04 21:19
赞赞赞,大佬太强了
All Replies
wtz
deepin
2021-07-04 21:27
#1

tql

Reply View the author
q77190858
deepin
2021-07-04 21:49
#2

牛逼

Reply View the author
Rubbish
deepin
2021-07-04 21:54
#3

还有一点就是QtQuick理论上对触摸设备的支持更好,不过有待测试。总之非常推荐使用QtQuick。

顺便好奇一下官方的开发活动这个项目能不能参加,想领钱

Reply View the author
depend
deepin
2021-07-04 22:22
#4

666

Reply View the author
HualetWang
deepin
2021-07-05 00:10
#5

赞,转给开发看一下~

 

Reply View the author
sgb76
deepin
2021-07-05 02:00
#6

大佬牛🐮

Reply View the author
神末shenmo
deepin
Spark-App
2021-07-05 02:13
#7

码了

Reply View the author
要讲武德
deepin
2021-07-05 02:17
#8

强~~

Reply View the author
get200
deepin
2021-07-05 03:07
#9

个人感觉qml最大的问题是接口开发问题,界面好做,数据对接不好搞,我记得之前deepin是不是用过qml

Reply View the author
Rubbish
deepin
2021-07-05 04:14
#10
get200

个人感觉qml最大的问题是接口开发问题,界面好做,数据对接不好搞,我记得之前deepin是不是用过qml

确实,我只敢做一些简单的用C++不多的。不过感觉用WebSocket来处理js和C++的通信可能是个方法

Reply View the author
xiongweixp
deepin
2021-07-05 05:53
#11

再来套PyQT的就好了

Reply View the author
jzc
deepin
2021-07-05 20:44
#12

强烈支持

Reply View the author
houyawei
deepin
2021-07-06 00:39
#13

支持支持

Reply View the author
yjhenan
deepin
2021-07-06 23:43
#14

虽然类似于Web前端,表示还是不会玩啊,支持大佬

Reply View the author
deltacatxx
deepin beta test group
2021-07-06 23:50
#15

https://docs.uniontech.com/zh/

这个网站好像有一些关于dtkwidget的设计规格

Reply View the author
陈大大哦了
deepin
2021-09-25 11:06
#16

好漂亮啊, 有时间用 flutter 来画一下 DTK 的 widget

Reply View the author