Details
-
Bug
-
Resolution: Unresolved
-
P4: Low
-
None
-
5.12.3
-
None
Description
When draw 2D with QPainter on QOpenGLWidget, the QPainter coordinate act as translate(-1,0). The x=0 position always invisible.
Take 'Examples\Qt-x.x.x\opengl\2dpainting' for example:
1, disable QPainter::Antialiasing
void GLWidget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); //painter.setRenderHint(QPainter::Antialiasing); helper->paint(&painter, event, elapsed); painter.end(); } void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); //painter.setRenderHint(QPainter::Antialiasing); helper->paint(&painter, event, elapsed); painter.end(); }
2, Change Helper::Paint event:
void Helper::paint(QPainter *painter, QPaintEvent *event, int elapsed)
{
painter->setPen(Qt::red);
painter->fillRect(event->rect(), Qt::gray);
painter->drawRect(event->rect());
}
Then you will get the result: