C++ Qpaintevent和paintGL冲突

C++ Qpaintevent和paintGL冲突,c++,qt,opengl,C++,Qt,Opengl,我当前的paintGL()和QPaintEvent函数之间存在冲突。我正在尝试渲染一条线,该线用作在paintGL()中绘制的对象上使用的测量工具,但是我当前的实现渲染了一个空白屏幕,我似乎无法解决问题。我还尝试将paintEvent内部的代码放置到paintGL中,这会渲染paintGL中的对象,但要从QPainter绘制的线不起作用 这是我的画展() 这是我的画 仅供参考:(这是关于使用QPainter的平视显示渲染)仅供参考:关于paintEvent()和paintGL()@Scheff的

我当前的paintGL()和QPaintEvent函数之间存在冲突。我正在尝试渲染一条线,该线用作在paintGL()中绘制的对象上使用的测量工具,但是我当前的实现渲染了一个空白屏幕,我似乎无法解决问题。我还尝试将paintEvent内部的代码放置到paintGL中,这会渲染paintGL中的对象,但要从QPainter绘制的线不起作用

这是我的画展()

这是我的画


仅供参考:(这是关于使用
QPainter
的平视显示渲染)仅供参考:关于
paintEvent()
paintGL()
@Scheff的关系,我读了这两篇文章,但不幸的是,我的实现没有起作用
void Widget::paintEvent(QPaintEvent* e)
{
    if (drawLine) {

        QPainter painter(this);
        QPen paintpen(Qt::red);
        paintpen.setWidth(4);

        QPen linepen(Qt::black);
        linepen.setWidth(4);

        QPoint p1;
        p1.setX(xAtPress);
        p1.setY(yAtPress);

        painter.setPen(paintpen);
        painter.drawPoint(p1);

        QPoint p2;
        p2.setX(xAtRelease);
        p2.setY(yAtRelease);

        painter.setPen(paintpen);
        painter.drawPoint(p2);

        painter.setPen(linepen);
        painter.drawLine(p1, p2);

    }   
}
 void Widget::paintGL()
    {
        // Clear the color and depth buffer with specified clear colour.
        // This will replace everything that was in the previous frame with the clear colour.
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        test0->draw();
        test1->draw();
        test2->draw();

        }

    }