[DTK] DTK软件的窗口圆角,应该升级为系统控制,需要合适的窗口管理器
Tofloor
poster avatar
deepin
2023-09-05 22:56
Author

今天,我在chatgpt上问了一个问题,其主要问题是:MacOS在系统层面,是如何做到让Qt软件的“4个直角窗口”变为“4个有圆角的窗口”?以下图片内容,如下:

image.png

也就是说,MacOS的窗口管理器Window Manager是通过Core Animation这个核心图形库把Qt软件的直角窗口的边角渲染成为圆角,可以让系统对很多软件进行图形方面的统一调度设置。

image.png

image.png

image.png
相关官方文档链接
Core Animation Programming Guide


最后,我为什么要介绍这部分内容呢,主要是因为现在系统中的软件开发框架有很多,Qt/DTK软件开发套件并不一定所有软件公司、程序员都会选择使用,有的会选择Flutter框架,还有的会选择Electron框架....

在当代,我们会发现后续会有更多新的编程语言出现,甚至也会有更多的GUI FrameWork出现,Deepin V23想单独依靠DTK软件开发套件来实现圆角边的软件形态并不现实,只能通过系统层的窗口管理器对所有类型的GUI FrameWork的软件界面窗口进行统一设置才行。这个系统设置功能如果完善,后面一些软件的设置也可以一劳永逸。

Reply Favorite View the author
All Replies
2 / 2
To page
deepin
2023-09-06 02:52
#21
liusu

看了下。楼主的帖子好像没啥引战的地方。回复的某些人才是真一个叽叽歪歪。阴阳怪气

😂 ,没办法,目前DTK的推广靠C++编程语言确实比较难,国内纯面向对象的编程开发者还是数量较多,他们可选择的GUI框架也比较多,窗口界面的优化还是得在系统层面进行。

Reply View the author
liusu
deepin
2023-09-06 03:04
#22

只是表达了只有dtk圆角,其他软件风格不统一,系统层面设置或者强行圆角可能是一种方法,并且分享osx下的类似设置。搞那么多戏做什么。

Reply View the author
DebuggerX
deepin
2023-09-06 03:23
#23
liusu

只是表达了只有dtk圆角,其他软件风格不统一,系统层面设置或者强行圆角可能是一种方法,并且分享osx下的类似设置。搞那么多戏做什么。

解释了半天不是系统没做,是第三方应用要求系统别管,还说明了如果强行处理的后果,可这人就像故意不听一样,只顾自己输出。

假设你买了房,卧室只有4米宽,这时候来个人让你买5米的大床,一个劲说5米大床怎么好怎么舒服,谁谁家就是5米的床所以你也要买,你再怎么解释说卧室只有4米放不下,他全然不听不顾,就是要你买5米大床,你什么感受?

我水平有限,可能真有办法实现,所以想请他演示下怎么把5米床放进4米卧室,真做到了我佩服,住着舒服我就学着做,这样有没有问题?

Reply View the author
liusu
deepin
2023-09-06 03:34
#24

截图 2023-09-05 19-32-02.png

截图 2023-09-05 19-31-43.png

截图 2023-09-05 19-31-18.png

Reply View the author
deepin
2023-09-06 04:13
#25
liusu

截图 2023-09-05 19-32-02.png

截图 2023-09-05 19-31-43.png

截图 2023-09-05 19-31-18.png

你这个是怎么实现的?

Reply View the author
阿顺呀
deepin
2023-09-06 04:34
#26

理性对待

1、实现统一确实不是无法实现,但也不是那么容易

2、开发者想自己画的原因,也可能是正因为没有统一的标准,比如我讨厌大额头,在设计QT 程序的时候 就会包标题栏干掉,自己写。

3、mac 和 win 确实有统一的窗口管理器,但是人家存在的时间很长,形成了开发规范,所以很少有标新立异的。

4、Linux本身碎片化严重,桌面环境很多,开发者不会去适配各个发行版单独开发,所以开发者可能为了让程序在大多数的发行版上的显示效果一致,就会把一些东西固定化。

Reply View the author
liusu
deepin
2023-09-06 04:35
#27

你这个是怎么实现的?

gnome的扩展 全名是

rounded windows corners

kde也有类似的扩展

我觉得你说的不支持的软件强行圆角是没问题的 。因为gnome kde都能实现。dde好像就是kde改的。

Reply View the author
liusu
deepin
2023-09-06 04:38
#28

自绘标题栏和能不能强制圆角不冲突,因为本来就强制了,自不自绘都无所谓了。

Reply View the author
deepin
2023-09-06 05:51
#29
阿顺呀

理性对待

1、实现统一确实不是无法实现,但也不是那么容易

2、开发者想自己画的原因,也可能是正因为没有统一的标准,比如我讨厌大额头,在设计QT 程序的时候 就会包标题栏干掉,自己写。

3、mac 和 win 确实有统一的窗口管理器,但是人家存在的时间很长,形成了开发规范,所以很少有标新立异的。

4、Linux本身碎片化严重,桌面环境很多,开发者不会去适配各个发行版单独开发,所以开发者可能为了让程序在大多数的发行版上的显示效果一致,就会把一些东西固定化。

其它发行版的非QT第三方软件可以先不管,先把经常用且原生的QT软件先用系统层窗口管理器去画成圆角,后期技术稳定再搞非qt的第三方软件。

Reply View the author
enforcee
deepin
2023-09-06 06:27
#30

本来写了一大段回应的,我给删掉了,毕竟我还带着版主的头衔呢,还要维护论坛的和谐。

doubt

一、MacOS的窗口圆角并非强制的,有些应用不遵守MacOS的设计理念也无可厚非。

二、GPT对第一个问题的回答是没什么问题的,但是不知道为什么楼主没有讨论。

三、MacOS的窗口圆角和Core Animation没关系。GPT对第二个问题的解答不对。Core Animation只是个控制图层动画的库。甚至,只要把楼主自己发的文档稍微看看就能知道是怎么回事。

五、至于之后的议论,既然前提都是错的,也就没什么讨论的意义了。

六、我相信你们终有一天能正确认识GPT等聊天机器人的原理和作用,而不是把他当成人造神灵去膜拜。我不是反对你们用GPT,你们自己心里都清楚GPT不是万能的,为什么还是盲从GPT生成的答案呢?只要再深究那么一点点,就不会被误导了。

Reply View the author
DebuggerX
deepin
2023-09-06 18:46
#31
It has been deleted!
DebuggerX
deepin
2023-09-06 18:48
#32
liusu

自绘标题栏和能不能强制圆角不冲突,因为本来就强制了,自不自绘都无所谓了。

看看我写的程序在Mac上的运行效果:

录屏_选择区域_20230906104044.gif

我这种没有标题栏,主打就是透明设计的应用,就问怎么强制圆角?系统可没法知道我的应用是怎么设计的,难道让用户一个一个去加黑名单?

再不懂再杠也没意思,没工夫再科普了。

Reply View the author
2 / 2
To page