• 7540阅读
  • 5回复

[提问]QOpenGLWidget 如何设置背景透明? [复制链接]

上一主题 下一主题
离线ghldh94
 

只看楼主 倒序阅读 楼主  发表于: 2019-07-17
回复本帖可获得2RMB金钱奖励!
每人最多可获奖1次,奖池剩余18RMB金钱 (中奖几率10%)
我按照官方的2dpainting  的示例,用QOpenGLWidget 来绘制一个圆形的2D图像(图就是圆形的,其它背景透明)。paintEvent没有问题,不过黑色背景也一同出来了。
原来在QWidget 下可以设置背景透明的的几种方式(setPalette,setCompositionMode,setStyleSheet,setAttribute(Qt::WA_TranslucentBackground, true);)都不能使背景透明。请问有什么办法让除了圆形图像外的区域透明吗(就是背景透明啦)?
离线笑颜

只看该作者 1楼 发表于: 2019-07-17
回帖奖励+ 2
setMask 你了解一下
离线naturalbest

只看该作者 2楼 发表于: 2019-07-17
遇到过同样的问题,试了半天没搞成,最后只能用窗口透明的办法。window下用的是SetLayeredWindowAttributes这个函数,其他平台就不清楚了。
离线ghldh94

只看该作者 3楼 发表于: 2019-07-18
回 naturalbest 的帖子
naturalbest:遇到过同样的问题,试了半天没搞成,最后只能用窗口透明的办法。window下用的是SetLayeredWindowAttributes这个函数,其他平台就不清楚了。 (2019-07-17 20:19) 

这个是MFC的函数吧? 但我是Qt程序
离线ghldh94

只看该作者 4楼 发表于: 2019-07-18
回 笑颜 的帖子
笑颜:setMask 你了解一下 (2019-07-17 20:07) 

setMask在Qopenglwidget  上试了也无效的
离线笑颜

只看该作者 5楼 发表于: 2019-07-18
回 ghldh94 的帖子
ghldh94:setMask在Qopenglwidget  上试了也无效的 (2019-07-18 09:48) 

我昨天试了一下的,QOpenGLWidget也可以裁剪成异形的窗口,如果你不行,多半是用法不对
快速回复
限100 字节
 
上一个 下一个