我正在使用QVTKOpenGLWidget进行数据可视化。但有时在我将演员添加到渲染器,然后调用QVTKOpenGLWidget::update()后,并不会立即绘制所有的演员。我不知道为什么会发生这种情况,我也不能重现这个问题。
然而,我发现一旦在QVTKOpenGLWidget上发生鼠标拖动事件,所有的角色都被正确绘制。所以我产生了一个想法,通过QVTKOpenGLWidget::mouseEvent(&ev1)手动将QMouseMoveEvent发送到QVTKOpenGLWidget。但是,当我可以通过事件过滤器确认事件已收到时,什么也没有发生。
我的问题是,如何发送一个鼠标拖动事件,就像QVTKOpenGLWidget中由“实际”鼠标驱动的事件一样。
编辑:2018-11-6月
在更改渲染器的摄像头配置后,我忘了调用vtkRendere::ResetCamera。问题就解决了。
发布于 2018-06-08 23:52:24
不需要显式传递鼠标事件来强制更新。假设你有一个QVTKOpenGLWidget *qvtk,那么为了更新场景,你应该调用qvtk->GetRenderWindow()->Render()。
https://stackoverflow.com/questions/50761113
复制相似问题