OpenGL视口下的Qt对象

Posted

技术标签:

【中文标题】OpenGL视口下的Qt对象【英文标题】:Qt objects under OpenGL viewport 【发布时间】:2013-10-14 14:01:19 【问题描述】:

我刚刚读到 here 说“OpenGL 视口上的 Qt 透明窗口”:

但是如果我尝试在一个框架上添加一些小部件(比如说一个复选框),并通过代码向这个框架添加一个 QGLWidget。它不会呈现小部件。

如何实现这个效果?可能会继续使用 Qt Designer。

编辑:由于评论,我必须指定我遇到的问题是 QGLWidget 上的每一种 widgdet 似乎不再被渲染(因为一些 opengl 上下文黑魔法?)

【问题讨论】:

您可以将任何 QWidget 的几何图形移动到另一个小部件上,并随时将其隐藏。即,QGlWidget 在 QMainWindow 中的几何形状是 (0, 0, 400, 300)。因此,关于 QMainWindow 将新小部件的几何图形设置为 (10, 10, 50, 50)。 抱歉,我的问题不是关于几何,而是关于我正在体验的效果,即 QGLWidget 上的任何类型的小部件似乎都没有被渲染 【参考方案1】:

Qt Quarterly 中有一篇关于如何做到这一点的好文章:QQ: Accelerate Your Widgets With OpenGL。从QGLWidget 移除确实需要进行一些大的更改,但实施起来似乎相当简单。

【讨论】:

我已经下载了该示例,但它不适用于 Qt 4.8(没有渲染,甚至没有显示背景颜色)。

以上是关于OpenGL视口下的Qt对象的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL编程 基础篇世界窗口和视口

OpenGL-坐标系

QML下的OpenGL

OpenGL:使用 FBO 和视口偏移问题渲染到纹理

获取相对于 Qt OpenGL 小部件的鼠标坐标

视口内的 OpenGL 视口