gpt4 book ai didi

qt - QWindow如何替代QGLWidget?

转载 作者:行者123 更新时间:2023-12-02 08:52:54 25 4
gpt4 key购买 nike

QT 文档说,从 qt5 开始,您应该使用 QOpenGL* 类而不是 QGL*。

问题是没有 QGLWidget 替代品。我发现您应该将 QWindow 与 QOpenGLContext 结合使用并调用 setSurfaceType( OpenGLSurface );。

唯一的问题是 QWindow 不能将 QWidget 作为父级。那么我怎样才能嵌入一个 QWindow 又名。我的 OpenGL 绘图表面到其他小部件中?

最佳答案

QT 5.1 在 OpenGL 和 QWidget(及其派生)方面处于一种奇怪的情况。没有 QGLWidget 替代品,但所有其他 QGL 类都有明确的替代品。

如果您不想使用旧的QGLWidget,您确实必须自己制造一个QWindow 的替代品。因此,首先设置您的 QWindow,然后,正如您正确所说,在调用 create(); 之前调用 setSurfaceType( OpenGLSurface ); 。然后,您创建一个新的QOpenGLContext并使用其makeCurrent()函数并传递您的QWindow。然后,您使用 QWidget::createWindowContainer(window);QWindow 创建一个 QWidget

但这只是一个临时技巧,除非您确实想将 QtQuick 与 QWidget 混合使用,否则您不必使用它。然后,您可以将此临时 hack 替换为 5.2.0 5.4.0 中的实际替换。叫QOpenGLWidget

关于qt - QWindow如何替代QGLWidget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17983107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com