症状
在QGraphicsView的事件中,不论使用 update,repaint,抑或updateScence,resetCacheContent, 均不可以刷新界面
程序里参考上一篇博文的方法,在QGraphicsView中使用了Opengl,即,把QGraphicsView的视口委托给QGLWidget来渲染
参考资料
一个比一个坑爹,都不管用
解决方案
全球首发,过了这村就没这店
尼玛要调用viewport 的update函数!!!
参考代码
首先,把QGLWidget绑定到QGraphicsView上,从而可以使用opengl进行渲染
void MYGraphicsView::setRenderGLWidget(QGLWidget *widget)
{
this->setViewport(widget);
this->setViewportUpdateMode(
QGraphicsView::FullViewportUpdate);
}
在 drawBackground 函数中使用opengl画图
void MYGraphicsView::drawBackground(QPainter *,const QRectF &)
{
glClearColor(1,1,1,1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
gl