在QVTKWidget渲染器中添加和删除vtkChartXY / vtkContextView

时间:2012-04-18 21:29:36

标签: c++ qt vtk

我目前有一个Qt MainWindow,其中包含一些控件,包括QVTKWidget。我可以使用vtkChartXY轻松地将vtkContextView对象添加到QVTKWidget

vtkSmartPointer<vtkContextView> m_2Dview = vtkSmartPointer<vtkContextView>::New();
m_2Dview->SetRenderWindow(this->QVTKWidget->GetRenderWindow());

然而,一旦我在QVTKWidget中拥有它,我找不到返回3d视图的方法。我尝试使用vtkContextActor,但这导致了互动问题。但是,如果vtkContextActor是最佳选择,我愿意尝试任何建议。

1 个答案:

答案 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);
}