这是dtk的bug还是qt的锅?
Tofloor
poster avatar
linusboyle
deepin
2018-08-11 03:48
Author


最近在写平行弹出的通知PR……问题是这ui看着好像有点不对劲。
这个“优雅的圆角矩形”一旦被放到QVBoxLayout里,就变成了尖(??)角矩形,看上去很不爽。
debug给出的radius是10,怎么看都是0   :-\

我写这个主要原因就是冲着支持图标、自定义动作以及模糊特效加圆角矩形来的,后者尤其重要,所以各位大佬,谁能解决一下这个问题??
Reply Favorite View the author
All Replies
avatar
linusboyle
deepin
2018-08-11 03:53
#1
Reply View the author
avatar
要讲武德
deepin
2018-08-12 00:25
#2
给deepin提PR吗
Reply View the author
avatar
rekols
deepin
2018-08-12 00:48
#3
Bubble继承DBlurEffectWidget,DBlurEffectWidget show 出来的肯定不是圆角,所以需要DWindowManagerHelper来加入圆角。
Reply View the author
Comments
hyikesong
2018-08-12 04:36
给力
avatar
linusboyle
deepin
2018-08-12 06:05
#4
https://bbs.deepin.org/post/167015
Bubble继承DBlurEffectWidget,DBlurEffectWidget show 出来的肯定不是圆角,所以需要DWindowManagerHelper ...

是DPlatformWindowHandle吧,bubble的ui我一行没改,设置圆角那几行也在啊
Reply View the author
avatar
rekols
deepin
2018-08-12 06:08
#5
https://bbs.deepin.org/post/167015
是DPlatformWindowHandle吧,bubble的ui我一行没改,设置圆角那几行也在啊

你试试DPlatformWindowHandle,刚刚看到你加入了个ScrollArea的东西....
Reply View the author
avatar
rekols
deepin
2018-08-12 06:08
#6
https://bbs.deepin.org/post/167015
是DPlatformWindowHandle吧,bubble的ui我一行没改,设置圆角那几行也在啊

你试试DPlatformWindowHandle,刚刚看到你加入了个ScrollArea的东西....
Reply View the author
avatar
rekols
deepin
2018-08-12 06:08
#7
https://bbs.deepin.org/post/167015
是DPlatformWindowHandle吧,bubble的ui我一行没改,设置圆角那几行也在啊

你试试DPlatformWindowHandle,刚刚看到你加入了个ScrollArea的东西....
Reply View the author
avatar
linusboyle
deepin
2018-08-12 06:29
#8
https://bbs.deepin.org/post/167015
你试试DPlatformWindowHandle,刚刚看到你加入了个ScrollArea的东西....

是啊,既然多个通知同时弹出,只好用滑动的方式了

我才想起我没用dde的窗口管理器……不过好奇的是即使在i3,旧版的也有5的圆角,这是怎么做到的
Reply View the author
avatar
linusboyle
deepin
2018-08-12 06:39
#9
https://bbs.deepin.org/post/167015
你试试DPlatformWindowHandle,刚刚看到你加入了个ScrollArea的东西....

调试无果,交给各位大佬了
Reply View the author
avatar
rekols
deepin
2018-08-12 06:40
#10
https://bbs.deepin.org/post/167015
是啊,既然多个通知同时弹出,只好用滑动的方式了

我才想起我没用dde的窗口管理器……不过好奇的是 ...

因为你用的是ScrollArea,它本身是不透明的,之前我写的那个词典划词窗口就遇到这个问题
你可以参考下:https://github.com/rekols/redict ... opupcontent.cpp#L38
Reply View the author
avatar
justforlxz
deepin
2018-08-12 16:49
#11
大佬… 你一个提交基本上把产品定的一些需求都给删了,我不敢合…
bug我可以修一下,但是功能不能删。
Reply View the author
avatar
justforlxz
deepin
2018-08-12 16:52
#12
https://bbs.deepin.org/post/167015
是啊,既然多个通知同时弹出,只好用滑动的方式了

我才想起我没用dde的窗口管理器……不过好奇的是 ...

dtk的圆角是dtk插件裁剪的,不是窗管帮忙的,所以和窗管无关。
圆角是DPlatformWindowHandle提供的,阴影也是它提供的,只需要在根窗口那里new就好,如果你需要一个圆角的模糊,把类改成基于DblurEffectWidget就行,dtk的模糊是有两种的,一个是来自根窗口的模糊,一个是窗体内模糊。所以不需要添加到布局里,如果你真的有需要,模糊方式要改成InWindowBlend
Reply View the author
avatar
Elegantpower
deepin
2018-08-12 17:13
#13
我唯一能做的就是帮你顶贴
Reply View the author
avatar
linusboyle
deepin
2018-08-12 17:44
#14
https://bbs.deepin.org/post/167015
大佬… 你一个提交基本上把产品定的一些需求都给删了,我不敢合…
bug我可以修一下,但是功能不能删。 ...

让我猜猜,是不是一定要有出入的动画
Reply View the author
avatar
linusboyle
deepin
2018-08-12 17:59
#15
https://bbs.deepin.org/post/167015
dtk的圆角是dtk插件裁剪的,不是窗管帮忙的,所以和窗管无关。
圆角是DPlatformWindowHandle提供的,阴影 ...

我是想每个气泡都是圆角的,dplatformwindowhandle只对根窗口有效诶
Reply View the author
avatar
rekols
deepin
2018-08-12 18:11
#16
https://bbs.deepin.org/post/167015
我是想每个气泡都是圆角的,dplatformwindowhandle只对根窗口有效诶

子窗口很容易实现呀,直接在paintEvent画个圆角矩形drawRoundedRect().....
Reply View the author
avatar
justforlxz
deepin
2018-08-12 18:22
#17
https://bbs.deepin.org/post/167015
让我猜猜,是不是一定要有出入的动画

动画是肯定的,还有对控制中心和dock的闪避也被你删了,重叠在一块就是bug
Reply View the author
avatar
justforlxz
deepin
2018-08-12 18:22
#18
https://bbs.deepin.org/post/167015
我是想每个气泡都是圆角的,dplatformwindowhandle只对根窗口有效诶

内部控件你不是想怎么画就怎么画…  
Reply View the author
avatar
linusboyle
deepin
2018-08-12 20:09
#19
https://bbs.deepin.org/post/167015
动画是肯定的,还有对控制中心和dock的闪避也被你删了,重叠在一块就是bug ...

放弃治疗,这就涉及到我的知识盲区了
百来个动画还真不好处理
Reply View the author