找回密码
 立即注册
收起左侧

窗口Window透明问题...

4
回复
6463
查看
[复制链接]
累计签到:7 天
连续签到:1 天
来源: 2018-7-6 23:42:47 显示全部楼层 |阅读模式
2Qter豆
大家好,想问一下如何能让QML的窗口(Window)显示一张图片(PNG)时能让图片透明部分正常透明.
经过几天的百度,无果,都是透明部分是黑色的,无法解决问题,大体都是以下方案:
1.使用QQuickView,然后setColor,再setSource.
2.setAttribute(Qt::WA_TranslucentBackground,true),这个函数在新版Qt中只适应于QWidget和派生类,而Window就没有派生这个类(包括QML的Window也是),只有MainWindow派生了QWidget类...
3.setStyleSheet("background:transparent;"),也不行...
4.使用QQmlApplicationEngine来load QML,试了各种color也不行...
5.各种类的各种setFlags或setWindowFlags,也不行...
6.QQuickView的setMask,不行...

实在是没有办法了,希望大家能集思广益一下~谢谢

回复

使用道具 举报

累计签到:91 天
连续签到:1 天
2018-7-7 23:49:43 显示全部楼层
还要去掉标题栏不然就是黑色背景
回复

使用道具 举报

累计签到:7 天
连续签到:1 天
2018-7-8 07:57:25 显示全部楼层
woaihot 发表于 2018-7-7 23:49
还要去掉标题栏不然就是黑色背景

已经去掉了,依然不行...不是这个问题...
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2018-8-10 08:46:28 显示全部楼层
是不是你的PNG图片有问题,换张图片试一下呢
回复

使用道具 举报

累计签到:597 天
连续签到:1 天
2018-8-10 17:15:17 显示全部楼层
是这样的,QML是用OpenGL渲染的,而OpenGL在渲染时,不指明的话,场景本身就是黑色。
指明场景背景色、4通道的话,甚至可以实现如下效果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了