OpenEdv-开源电子网
标题:
linux+qt设置透明,本该透明的地方显示黑色,请问如何解决?
[打印本页]
作者:
wpwp123
时间:
2024-1-1 17:05
标题:
linux+qt设置透明,本该透明的地方显示黑色,请问如何解决?
qt版本是5.15.2函数和运行结果如下:
作者:
wpwp123
时间:
2024-1-1 17:07
四个角本该显示透明的,结果现在显示黑色,请问怎么解决啊啊啊?
作者:
dpwz
时间:
2024-1-2 16:50
wpwp123 发表于 2024-1-1 17:07
四个角本该显示透明的,结果现在显示黑色,请问怎么解决啊啊啊?
顶一下
作者:
dpwz
时间:
2024-1-3 12:57
没人知道吗
作者:
夜雨扰人烦
时间:
2024-9-29 18:30
或许你可以排查一下你的屏幕驱动有没有配置好呢, 支不支持透明度设置
作者:
suhetao
时间:
2025-3-8 23:56
两个方式:
1、修改qt源码,qt5不确定qt4可以改源码可以解决。去qt源码路径下
qtbase/src/platformsupport/fbconvenience/qfbscreen.cpp
把
mCompositePainter->fillRect(rect, Qt::black);
改成
mCompositePainter->setCompositionMode(QPainter::CompositionMode_Source);
mCompositePainter->fillRect(rect, Qt::transparent);
mCompositePainter->setCompositionMode(QPainter::CompositionMode_SourceOver);
2:不修改qt源码,可以参考不规则窗口的实现,学会QWidget::setMask遮罩的使用,美工配合搞个遮罩的图片。
ps:
要注意窗口底下要有东西,最简单的做法就是确保窗口在所有窗口堆栈之上。屏幕的底色并不是透明!!!
欢迎光临 OpenEdv-开源电子网 (https://www.openedv.com/)
Powered by Discuz! X3.4