Qt不会创建OpenGL上下文

时间:2013-06-25 20:47:00

标签: qt opengl qt5 glew

我是Qt的新手,我正在尝试配置我的Qt5环境以使用OpenGL小部件。我已经在线跟踪了一些教程和花絮,但似乎没有任何工作。我在Designer中创建了一个窗口,然后手动将我自己的QGLWidget子类添加到窗口的布局中(按照教程说明)。我也填写了paintGL initializeGLresizeGL函数。我以前使用的是过剩的glew,所以我把它扔进了Qt的构建路径。我已经了解到,为了在Qt中使用glew,你不能包含Qt OpenGL头文件。我还定义了QT_NO_OPENGL_ESQT_NO_OPENGL_ES_2

然而,无论我做什么,我都不能让我的窗户显示任何东西,只有黑色 - 它甚至不会清晰的颜色。此外,我在我的widget类中有一些打印语句,以指示OpenGL和GLSL版本,但在我退出窗口之前没有任何打印。从那里我得到了Glew错误“Missing GL version”。 更新:我不知道这是因为有不同的窗口(我不熟悉),或者这些方法奇怪地只是在我关闭窗口之前没有被调用(为什么?)

我尝试过各种各样的互联网建议,但没有任何帮助。我想要的就是能够使用最新的(我的comp上的4.2)OpenGL和Qt(用于小部件)。

技术规格:

  • Qt 5
  • Mingw编译器
  • Windows 7
  • Glew静态链接(.a)

1 个答案:

答案 0 :(得分:0)

我不知道你在哪个平台上,但我在使用QGLWidget构建一个简单的应用程序时遇到了同样的问题(没有任何反应),我写了一个小指南,希望它可以帮助你。

所以,我建议你是一个全新的装置。我从未使用过glew,所以没有它我的解决方案。

如果您需要的是修复当前设置,请不要阅读下一步。

简单方法:

1:安装qt-windows-opensource-5.0.2-msvc2010_32_opengl-x86-offline

2:从Microsoft安装Visual Studio Express(免费,我们需要其编译器)

3:请确保您在windows / system32中有glu32.dll,glut32.dll,opengl32.dll以及 窗户/ SYSWOW64

4:在Qt中设置msvc x86编译器

艰难的方式:

如果你正在使用VS2012编译器,你想在这里使用它(你必须重新编译QT):

1:安装qt-windows-opensource-5.0.1-mingw47_32-x86-offline(在安装过程中检查语音“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 -developer-build -opensource   -nomake examples -nomake tests -opengl desktop -mp

7: nmake确认

8:请确保您在windows / system32和windows / sysWOW64中有glu32.dll,glut32.dll,opengl32.dll

9:打开

  

&QT间期GT;工具 - >选项 - >构建与安培;运行 - > QtVersion->添加

并设置你可以在C:\ Qt \ Qt5.0.1 \ 5.0.1 \ Src \ NuovaCartella \ bin中找到的qmake

10:转到

  

选项>构建与安培;运行 - > Kits->添加

并设置C ++编译器v11.0 x86并在标签QtVersion下设置Qt 5.0.1(NuovaCartella)

希望它有所帮助。