Qt不';不能创建OpenGL上下文

Qt不';不能创建OpenGL上下文,qt,opengl,qt5,glew,Qt,Opengl,Qt5,Glew,我是Qt新手,正在尝试配置我的Qt5环境以使用OpenGL小部件。我在网上关注了很多教程和花絮,但似乎没有任何效果。我在Designer中创建了一个窗口,然后手动将我自己的QGLWidget子类添加到窗口的布局中(按照教程说明)。我还填写了paintGLinitializeGL和resizeGL函数。我以前使用的是glut glew,所以我将glew加入到Qt的构建路径中。我已经了解到,为了将glew与Qt一起使用,必须不包含Qt OpenGL头。我还定义了QT\u NO\u OPENGL\u

我是Qt新手,正在尝试配置我的Qt5环境以使用OpenGL小部件。我在网上关注了很多教程和花絮,但似乎没有任何效果。我在Designer中创建了一个窗口,然后手动将我自己的QGLWidget子类添加到窗口的布局中(按照教程说明)。我还填写了
paintGL
initializeGL
resizeGL
函数。我以前使用的是glut glew,所以我将glew加入到Qt的构建路径中。我已经了解到,为了将glew与Qt一起使用,必须不包含Qt OpenGL头。我还定义了
QT\u NO\u OPENGL\u ES
QT\u NO\u OPENGL\u ES\u 2

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

我尝试过各种各样的互联网建议组合,但都无济于事。我所希望的就是能够使用最新的OpenGL和Qt(用于小部件)

技术规格:

  • Qt 5
  • Mingw编译器
  • 视窗7
  • 正在静态链接Glew(.a)

我不知道你在哪个平台上,但我在用QGLWidget构建一个简单的应用程序时遇到了同样的问题(什么都没有发生),我写了一个小指南,希望它能帮助你

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

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

简易方法:

1:脱机安装qt-windows-opensource-5.0.2-msvc2010\u 32\u opengl-x86

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

3:确保在windows/system32和windows/system32中有glu32.dll、glut32.dll和opengl32.dll windows/sysWOW64

4:在msvc x86编译器中设置

艰难之路:

如果您使用的是VS2012编译器,并且您想使用它,以下是方法(您必须重新编译QT):

1:离线安装qt-windows-opensource-5.0.1-mingw47_32-x86(安装过程中检查语音“Souce”)

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

3:安装草莓Perl 5.16.3.1(32位)

4:创建一个新文件夹,如C:\Qt\Qt5.0.1\5.0.1\Src\nuovacertella

5:打开VS2012 x86命令并将其放置在创建的文件夹中

6:粘贴这个

C:\Qt\Qt5.0.1\5.0.1\Src\qtbase\configure-developer build-opensource -nomake示例-nomake测试-opengl桌面-mp

7:请确认

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

9:开放

Qt->tools->Options->Build&Run->QtVersion->Add

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

10:去

选项->构建和运行->工具包->添加

< >并设置C++编译器V1.1 0 x86,并在标签qtVIEW集合qt5.0.1(NuovaCartella)


希望有帮助。

不要“定义出”
QT\u NO\u OPENGL\u ES
,这是在配置时选择的。您在哪个平台上,使用哪个Qt版本(以及您是如何安装的)?@peppe我已经更新了我的问题。不幸的是,我使用的是gcc(mingw32)和静态库,而不是动态库(ie.a)。你知道根问题是你修复的吗?当然,主要问题是我在system 32和syswow64中没有OpenGL.dll文件。解决方案是安装Qt的OpenGL版本。