Qt 使用原始OpenGL时在QGLWidget中绘制文本

Qt 使用原始OpenGL时在QGLWidget中绘制文本,qt,qt4,Qt,Qt4,我正在编写包装外部3D引擎的Qt应用程序。我使用QGLWidget来封装引擎API。我不使用任何Qt GL API方法,尽管我确实使用Qt API创建GL上下文: QGLFormat format; format.setProfile(QGLFormat::CompatibilityProfile); format.setVersion(4,2); format.setDoubleBuffer(true); format.setSwapInterval(1); 现在,我正在寻找一种在视口中绘制

我正在编写包装外部3D引擎的Qt应用程序。我使用QGLWidget来封装引擎API。我不使用任何Qt GL API方法,尽管我确实使用Qt API创建GL上下文:

QGLFormat format;
format.setProfile(QGLFormat::CompatibilityProfile);
format.setVersion(4,2);
format.setDoubleBuffer(true);
format.setSwapInterval(1);
现在,我正在寻找一种在视口中绘制文本的方法,并找到了Qt

我尝试过使用它,但没有开始绘制文本。 我就是这样做的:

    qglColor(Qt::black);
    this->renderText(50, 50, "Some text");
我错过了什么


顺便说一句,我的深度缓冲区已关闭。

我使用以下方法在OpenGL小部件中绘制文本:

void myGL_Widget::OGL_Draw_Text(QString text,float x,float y, float z, float red, float green, float blue)
    {
        glPushMatrix();
        glColor3f(red, green, blue);
        renderText(x, y, z, text);
        glPopMatrix();
    }

也尝试过。不起作用。可能它只适用于固定管道?Qt使用OpenGL 2.0和着色器。但是OpenGL3+是最近才出现的,甚至还没有出现。Qt5最小值。因此,它可能会在您的引擎已经切换到GL3上下文时尝试使用GL2。另请参见格式参数。