如何将 QWidget 添加到 QGLWidget

Posted

技术标签:

【中文标题】如何将 QWidget 添加到 QGLWidget【英文标题】:How to add QWidget to a QGLWidget 【发布时间】:2015-06-23 11:31:12 【问题描述】:

目前将 QWidget 添加到 QGLWidget 的最佳方式是什么?在这种情况下,我想向 QGLWidget 添加一个 QSlider,但是现在 Google 上似乎有一半的链接指向无效信息,因此很难弄清楚当前实现这一目标的方法是什么。

我小时候确实尝试过创建一个 QSlider 并设置几何图形,但这似乎没有多大作用。

【问题讨论】:

也许您听说QGLWidget 现在已经过时了,您应该改用QOpenGLWidget 我实际上没有,谢谢。随着这种新的小部件类型的引入,是否有一种将 QWidgets 添加为子项的新方法? 我没有尝试过,但据我所知,它应该可以通过设置父级来工作。 QGLWidget 从不支持正确添加子小部件,因此您必须直接在 QGLWidget 上绘制它们或将它们放在 QGraphicsScene 中。使用QOpenGLWidget 应该是可能的。 【参考方案1】:

子小部件不适用于 QGLWidget,已记录在案。

使用QOpenGLWidget 并且子小部件可以正常工作。在这方面没有什么特别的,只需添加子小部件、布局等,它“就可以工作”。

【讨论】:

太好了,谢谢。您能指出QOpenGLWidget 的任何代码示例吗?我已经尝试对我的“QGLWidget”进行初始移植,但遇到了各种分段错误问题,我猜这意味着我在某处缺少初始化程序,但文档并不清楚。 实际上设法转换它,不是 100% 确定如何转换,但我认为我依赖于旧格式的正确位置的调用,以及新格式的错误位置。我创建了一个新的QOpenGLWidget 并实现了基本功能来测试,然后在上面重新实现了我的功能,一切都很好。

以上是关于如何将 QWidget 添加到 QGLWidget的主要内容,如果未能解决你的问题,请参考以下文章

在 QGLWidget 中将位复制到 QtImage

QGLWidget 在 QT 中是如何工作的?

如何让 qGLWidget 在 Visual Studio 中显示

在 JOGL 中跨多个 QWidget 共享 VBO

如何在qt中执行opengl

如何将 QWidget 添加到 QMenuBar?