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