我目前有一个Qt MainWindow
,其中包含一些控件,包括QVTKWidget
。我可以使用vtkChartXY
轻松地将vtkContextView
对象添加到QVTKWidget
:
vtkSmartPointer<vtkContextView> m_2Dview = vtkSmartPointer<vtkContextView>::New();
m_2Dview->SetRenderWindow(this->QVTKWidget->GetRenderWindow());
然而,一旦我在QVTKWidget
中拥有它,我找不到返回3d视图的方法。我尝试使用vtkContextActor
,但这导致了互动问题。但是,如果vtkContextActor
是最佳选择,我愿意尝试任何建议。
答案 0 :(得分:2)
我要解决此问题的方法是在存储vtkrenderer
后从vtkrenderwindow
的指针中删除vtkrenderer
,以重置vtkRenderWindow
上的vtkRenderer
首先指针,然后将我存储的渲染器添加回vtkRenderWindow
。
这至少为我重置视图是我使用过的代码段。
AnalysisWindow
是指向实际vtkRenderer
的指针。
if(AnalysisWindow != NULL)
{
vtkSmartPointer<vtkRenderWindow> win;
win = AnalysisWindow->GetRenderWindow();
win->RemoveRenderer(AnalysisWindow);
win->AddRenderer(AnalysisWindow);
}