VTK基础(05):VTK的渲染窗口嵌入到QT的控件当中
VTK的渲染窗口嵌入到QT的控件当中
VTK渲染到QT的控件当中的关键是实现OpenGL的上下文共享,即让VTK和QT共享一个OpenGL环境
//生成数据
vtkSmartPointer<vtkCubeSource> objCubeSource = vtkSmartPointer<vtkCubeSource>::New();
objCubeSource->Update();//配置管线
vtkSmartPointer<vtkPolyDataMapper> objPolyMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
objPolyMapper->SetInputConnection(objCubeSource->GetOutputPort());//渲染引擎
vtkSmartPointer<vtkActor> objActor = vtkSmartPointer<vtkActor>::New();
objActor->SetMapper(objPolyMapper);
vtkSmartPointer<vtkRenderer> objRender = vtkSmartPointer<vtkRenderer>::New();
objRender->AddActor(objActor);
vtkSmartPointer<vtkGenericOpenGLRenderWindow> objRenderWin = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
objRenderWin->AddRenderer(objRender);//QWindow窗口
QVTKOpenGLWindow *objQWin = new QVTKOpenGLWindow;
objQWin->SetRenderWindow(objRenderWin);//QWidget窗口
QWidget * widgetForVTK = QWidget::createWindowContainer(objQWin,this);
ui->frame->layoutRight->addWidget(widgetForVTK);