qgraphicsview刷新_QT 在 QGraphicsView 中使用 opengl 不能够刷新的解决方案

本文描述了在QGraphicsView中使用OpenGL渲染时遇到的界面无法刷新的问题,详细介绍了问题的症状以及尝试的各种刷新方法无效。最终提供了一个全球首发的解决方案,即调用viewport的update函数来刷新界面。在示例代码中展示了如何设置QGLWidget并使用OpenGL绘制,以及在wheelEvent事件中如何正确更新视图。
摘要由CSDN通过智能技术生成

症状

在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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值