找回密码
 立即注册

窗口Window透明问题...

累计签到: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,不行...

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

回复

使用道具 举报

累计签到:87 天
连续签到: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图片有问题,换张图片试一下呢
回复

使用道具 举报

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

深林孤鹰

    主题

    帖子

    55

    积分

    Qter1级会员

    Rank: 1

    积分
    55

Qter1级会员

发私信

Qt开源社区——开源 共享 自由

微信扫一扫
查看精品教程!