我目前有一个Qt MainWindow
,其中包含许多控件,包括QVTKWidget
。我可以很容易地使用vtkChartXY
将vtkContextView
对象添加到QVTKWidget
:
vtkSmartPointer<vtkContextView> m_2Dview = vtkSmartPointer<vtkContextView>::New();
m_2Dview->SetRenderWindow(this->QVTKWidget->GetRenderWindow());
但是,一旦将其保存在
QVTKWidget
中,就无法找到返回3d View 的方法。我尝试使用vtkContextActor
,但它导致了交互问题。但是,如果vtkContextActor
是可行的方法,我愿意尝试任何建议。 最佳答案
解决此问题的方法是,先存储vtkrenderer
指针,然后从vtkrenderwindow
的指针中删除vtkrenderer
,然后再将存储的渲染器添加回vtkRenderWindow
中,以重置vtkRenderer
上的vtkRenderWindow
。
这至少为我重置了 View ,下面是我使用的代码段。AnalysisWindow
是我指向实际vtkRenderer
的指针。
if(AnalysisWindow != NULL)
{
vtkSmartPointer<vtkRenderWindow> win;
win = AnalysisWindow->GetRenderWindow();
win->RemoveRenderer(AnalysisWindow);
win->AddRenderer(AnalysisWindow);
}
关于c++ - 在QVTKWidget渲染器中添加和删除vtkChartXY/vtkContextView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10218316/