QOpenGLWidget设置透明
时间: 2023-07-04 17:08:38 浏览: 237
QT opengl 透明度设置
要设置QOpenGLWidget的透明度,可以使用以下代码:
```python
from PyQt5.QtGui import QSurfaceFormat
from PyQt5.QtWidgets import QApplication, QOpenGLWidget
class TransparentGLWidget(QOpenGLWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setWindowOpacity(0.5) # 设置窗口透明度
self.setAttribute(Qt.WA_TranslucentBackground) # 设置背景透明
def initializeGL(self):
# 初始化 OpenGL
...
def resizeGL(self, w, h):
# 重置 OpenGL 视图
...
def paintGL(self):
# 渲染 OpenGL 场景
...
if __name__ == '__main__':
app = QApplication([])
format = QSurfaceFormat()
format.setAlphaBufferSize(8) # 设置 alpha 通道位数
QSurfaceFormat.setDefaultFormat(format)
widget = TransparentGLWidget()
widget.setGeometry(100, 100, 640, 480)
widget.show()
app.exec_()
```
这里使用了`setWindowOpacity()`方法设置窗口透明度,同时使用了`setAttribute()`方法将背景设置为透明。还需要在`QSurfaceFormat`中设置 alpha 通道位数为8位,这将启用8位 alpha 通道,使得窗口可以透明显示。
阅读全文