QVTKOpenGLNativeWidget 搭建VTK和QT的结合窗口
- 1、对QVTKOpenGLNativeWidget的理解:
QVTKOpenGLNativeWidget当成是一窗口,用于vtk输出渲染的载体
- 2、vtkGenericOpenGLRenderWi平台独立渲染窗口。
提供了一个框架,用于使用自己的OpenGL上下文和drawable实现渲染窗口。
- 3、对于有些机子可能需要添加下方的设置才能使得vtk窗口能正常与QT结合
vtkOpenGLRenderWindow::SetGlobalMaximumNumberOfMultiSamples(8);
QSurfaceFormat::setDefaultFormat(QVTKOpenGLWidget::defaultFormat();
- 4、与QT结合代码
QPointer<QVTKOpenGLNativeWidget> widget;
vtkSmartPointer<vtkRenderer> ren_;
vtkSmartPointer<vtkGenericOpenGLRenderWindow> renWin;
widget = new QVTKOpenGLNativeWidget;
ren_ = vtkSmartPointer<vtkRenderer>::New();
ren_->SetBackground(0.5, 0.5, 0.5);
renWin = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
renWin->AddRenderer(ren_);
widget->SetRenderWindow(renWin);
//widget->GetInteractor()->Initialize();
//widget->GetInteractor()->Start();
ui->verticalLayout->addWidget(widget);
注:不需要像vtk的渲染窗口一样,手动添加交互和手动进行初始化和启动,当widget设置renwin渲染窗口的时候,渲染窗口会自动进行交互初始化和启动的工作,如果添加了手动的初始化和启动后,会出现下面的报错信息
QVTKInteractor (0x55919bdc1040): QVTKInteractor cannot control the event loop.