查看完整版本: [-- QOpenGLWidget 如何设置背景透明? --]

QTCN开发网 -> Qt嵌入式开发 -> QOpenGLWidget 如何设置背景透明? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

ghldh94 2019-07-17 18:02

QOpenGLWidget 如何设置背景透明?

我按照官方的2dpainting  的示例,用QOpenGLWidget 来绘制一个圆形的2D图像(图就是圆形的,其它背景透明)。paintEvent没有问题,不过黑色背景也一同出来了。
原来在QWidget 下可以设置背景透明的的几种方式(setPalette,setCompositionMode,setStyleSheet,setAttribute(Qt::WA_TranslucentBackground, true);)都不能使背景透明。请问有什么办法让除了圆形图像外的区域透明吗(就是背景透明啦)?

笑颜 2019-07-17 20:07
setMask 你了解一下

naturalbest 2019-07-17 20:19
遇到过同样的问题,试了半天没搞成,最后只能用窗口透明的办法。window下用的是SetLayeredWindowAttributes这个函数,其他平台就不清楚了。

ghldh94 2019-07-18 09:47
naturalbest:遇到过同样的问题,试了半天没搞成,最后只能用窗口透明的办法。window下用的是SetLayeredWindowAttributes这个函数,其他平台就不清楚了。 (2019-07-17 20:19) 

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

ghldh94 2019-07-18 09:48
笑颜:setMask 你了解一下 (2019-07-17 20:07) 

setMask在Qopenglwidget  上试了也无效的

笑颜 2019-07-18 14:35
ghldh94:setMask在Qopenglwidget  上试了也无效的 (2019-07-18 09:48) 

我昨天试了一下的,QOpenGLWidget也可以裁剪成异形的窗口,如果你不行,多半是用法不对


查看完整版本: [-- QOpenGLWidget 如何设置背景透明? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled