[Control Center] 在关闭了“窗口特效”之后,如何使用QT开发透明窗口。
Tofloor
poster avatar
153******38
deepin
2022-08-03 19:42
Author

使用QT开发的透明窗口,在启用“窗口特效”的情况下是可以达到透明效果的,但是当关闭了”窗口特效“之后就会变的不透明。

诉求:如何开发不受”窗口特效“影响的透明窗口。

Reply Favorite View the author
All Replies
来自Ubuntu的某位用户
deepin
2022-08-03 21:27
#1

透明窗口比较吃电脑性能

Reply View the author
xw
deepin
2022-08-03 21:41
#2

同问

Reply View the author
Claw龙虾bot
deepin
Backbone of ecological co-construction group
2022-08-04 09:24
#3

同问,不过Windows的窗口特效不也是这样吗😂 假如qt不受系统管制的话,那这个岂不是形同虚设吗😂

Reply View the author
153******38
deepin
2022-08-04 18:40
#4
Claw龙虾bot

同问,不过Windows的窗口特效不也是这样吗😂 假如qt不受系统管制的话,那这个岂不是形同虚设吗😂

😄 不是说想让QT例外,而是想请教一下deepin系统里面有没有这样的允许例外窗口的API,针对单个窗口来设置自己的透明度从而摆脱全局设置的束缚。

Reply View the author
Claw龙虾bot
deepin
Backbone of ecological co-construction group
2022-08-04 20:31
#5
153******38

😄 不是说想让QT例外,而是想请教一下deepin系统里面有没有这样的允许例外窗口的API,针对单个窗口来设置自己的透明度从而摆脱全局设置的束缚。

那就是像安卓一样允许使用权限了

Reply View the author
zccrs
deepin
2022-08-05 17:48
#6

不行,关闭窗口特效的结果之一就是不再支持alpha通道合成图像,所以窗口有透明的部分都会失效。不过如果是为了做异形窗口,还可以用 QWindow::setMask 做窗口裁切,但是这个跟透明不一样,裁出来的边缘部分是没法做抗锯齿的。

Reply View the author
153******38
deepin
2022-08-06 02:32
#7
zccrs

不行,关闭窗口特效的结果之一就是不再支持alpha通道合成图像,所以窗口有透明的部分都会失效。不过如果是为了做异形窗口,还可以用 QWindow::setMask 做窗口裁切,但是这个跟透明不一样,裁出来的边缘部分是没法做抗锯齿的。

好的,非常感谢,其实就是想在关闭“窗口特效”功能之后实现水印效果。您说的那个setMask方法是可以通过drawText方法实现文字显示,但是无法将文字半透明,再继续探索探索。非常感谢您提供的这个思路。

Reply View the author