我是Qt的新手,正在尝试将Qt5环境配置为使用OpenGL小部件。我在网上看了很多教程和花絮,但似乎什么都不起作用。我在Designer中创建了一个窗口,然后手动将我自己的QGLWidget子类添加到窗口的布局中(根据教程说明)。我还填写了paintGL
、initializeGL
和resizeGL
函数。我之前使用的是glut-glew,所以我把glew加入了Qt的构建路径。我已经了解到,为了在Qt中使用glew,您不能包含Qt OpenGL头。我还定义了QT_NO_OPENGL_ES
和QT_NO_OPENGL_ES_2
。
然而,无论我做什么,我都无法让我的窗口显示除黑色以外的任何内容——它甚至无法清晰显示为一种颜色。此外,我的小部件类中有一些print语句,用于指示OpenGL和GLSL的版本,但在退出窗口之前,不会打印任何内容。从那里我得到了Glew错误"缺少GL版本"。更新:我不知道这是因为有不同的窗口(我不熟悉),还是奇怪的是,这些方法直到我关闭窗口才被调用(为什么?)。
我试过各种各样的建议组合,但都无济于事。我想要的只是能够使用最新的(我的comp上的4.2)OpenGL和Qt(用于小部件)。
技术规格:
- 问题5
- Mingw编译器
- Windows 7
- Glew正在静态链接(.a)
我不知道你在哪个平台上,但我在用QGLWidget构建一个简单的应用程序时遇到了同样的问题(什么都没发生),我写了一个小指南,希望它能帮助你。
所以我建议你做一个全新的装置。我从来没有用过glew,所以如果没有它,我的解决方案就是这样
如果你需要的是修复你当前的设置,不要阅读下一步的内容。
简单方法:
1:安装qt-windows-opensource-5.0.2-msvc2010_32_opengl-x86-offline
2:从Microsoft安装Visual Studio Express(免费,我们需要它的编译器)
3:请确保您在windows/system32和windows/sysWOW64
4:在Qt中设置msvcx86编译器
艰难的道路:
如果你正在使用VS2012编译器,并且你想使用它,这里是方法(你必须重新编译QT):
1:离线安装qt-windows-opensource-5.0.1-mingw47_32-x86(在安装过程中检查语音"Souce")
2:从Microsoft安装Visual Studio Express(免费,我们需要它的编译器)
3:安装Strawberry Perl 5.16.3.1(32位)
4:创建一个新文件夹,如C:\Qt\Qt5.0.1\5.0.1\Src\NuovaCartella
5:打开VS2012 x86命令并将其放置在创建的文件夹中
6:粘贴此
C: \Qt\Qt5.0.1\5.0.1\Src\qtbase\configure-开发者构建-开源-nomake示例-nomake测试-opengl桌面-mp
7:请确认
8:请确保在windows/system32和windows/sysWOW64 中有glu32.dll、glut32.dll、opengl32.dll
9:打开
Qt->工具->选项->构建&运行->QtVersion->添加
并设置您可以在C:\Qt\Qt5.0.1\5.0.1\Src\NuovaCartella\bin 中找到的qmake
10:转到
选项->构建&运行->套件->添加
并设置C++编译器v11.0 x86和标签下的QtVersion设置Qt 5.0.1(NuovaCartella)
希望有帮助。