我正在开发一个小项目,我需要使用 OpenGL + QT
我在这两个方面都是新手。所以我需要一个很好的教程来说明如何与他们一起工作而不是单独工作
在 QT Creator 上使用 OpenGL 更好还是使用 QT Visual Studio 插件更好?
您会经常使用
QGLWidget
!给你:
http://doc.qt.io/qt-5/examples-widgets-opengl.html
在所有这些中,也许这是最好的开始:Hello GL 示例。如果您更喜欢使用 Qt Quick 而不是 Qt Widgets,请查看这些帖子:
如果您想要比 OpenGL 更高级别的 3D API,因为 Qt 5.7 Qt 3D 变得稳定。
对于IDE我建议使用Qt Creator。它在 Windows 上开箱即用,语法突出显示和自动完成功能与 Visual Studio 相当。
在 Qt 中使用 OpenGL 有多种不同的选项。这些年来它发生了很大的变化。有关应涵盖您开始所需的所有基本信息的介绍请参阅这篇文章。旧式 Qt OpenGL 类和函数称为 QGLxx,但现在称为 QOpenGLxx,并已移至 QtGUI 模块中。
Qt 中的许多简单 OpenGL 示例(包括 Qt 附带的 QOpenGLWindow 示例)都使用不应再使用的旧式 OpenGL。 这里是一个教程,已将 QOpenGLWindow 示例更新为现代 OpenGL (3+)。这是我遇到过的最简单、最新的例子。
我第二个Qt Creator,特别是为了学习。与 Visual Studio 相比,它与 Qt 帮助文件的集成要好得多。如果您正在考虑在 IDE 之间切换,我还建议使用 CMake 进行构建。 CMake 与 Qt Creator 的内置 qmake 非常相似,但它可以与 Visual Studio 或其他 IDE 一起良好地工作。我一直在使用 CMake 在 Visual Studio 和 Qt Creator 中运行一些示例以用于学习目的。 这是一个使用 Qt 的简单 CMake 示例。出于我的目的,我在 Qt Creator 中工作时仍然使用 Visual Studio 编译器。
SDK 中有一些如何将 Open GL 与 QT 结合使用的示例。如果需要,您可以在 QT Creator 中打开这些示例。回答第二个问题,我发现 QT Creator 比 Visual Studio 更快、更容易使用,但 YMMV。
这里是使用 OpenGL 和 Qt 的地图渲染应用程序的完整源代码:
https://github.com/CartoType/CartoType-Public/tree/master/src/apps/Maps
直接使用Qt的类是MapForm:
https://github.com/CartoType/CartoType-Public/blob/master/src/apps/Maps/mapform.h https://github.com/CartoType/CartoType-Public/blob/master/src/apps/Maps/mapform.cpp
实际的 OpenGL 函数调用位于 CartoType 库内部,因此在此源代码中不可用,但该应用程序可能有助于显示在 Qt 中使用 OpenGL 的一般框架。
绘图是使用 PaintGL 函数 MapForm::paintGL() 的实现完成的,该函数通过调用 update() 的计时器每秒调用 30 次,然后触发对 PaintGL() 的调用。