我目前有一个Qt MainWindow,其中包含许多控件,包括QVTKWidget。我可以很容易地使用vtkChartXYvtkContextView对象添加到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/

10-09 06:33