我无法在QOpenGLWidget上绘画

时间:2019-07-18 16:08:35

标签: c++ qt opengl qopenglwidget

我是Qt的新手,我正在制作一个可生成3D对象的应用程序,其中包含用户在GUI中提供的一些点。用户定义这些点,然后在同一窗口中使用QOpenGLWidget绘制最终对象。但是然后,QOpenGLWindow不会绘制模型(仅绘制GlCLearColor)。我尝试了相同的功能,但在main中的app.exec()之前调用了它,并且工作正常。

我不知道发生了什么。在使用vao和vbo之前,我曾尝试调用makeCurrent(),但是它不起作用。

我既没有创建任何线程,也没有fbo。

当我在使用vao和vbo之前尝试了makeCurrent时,得到了: “ QOpenGLBuffer :: bind:缓冲区在当前上下文中无效” “ QOpenGLShaderProgram :: bind:程序在当前上下文中无效。”

编辑,我在vao,vbo和着色器绑定之前重试了当前程序,并且消息消失了,但是小部件没有绘制对象。

在绘制后,我还尝试了QOPenGLWidget :: update()。它不具有调整大小。 我正在使用OpenGL 4.1 Core Profile和Qt 5.12.3

1 个答案:

答案 0 :(得分:0)

我已经解决了!我只是忘了在着色器中设置统一值之前先使电流变为当前状态。