我有一个使用 pcl 和 vtk 的 Qt 工作项目。我使用的是 QVTKWidget。
现在我需要使用 QVTKOpenGLWidget 重新构建项目,因为不推荐使用 QVTKWidget
这篇文章建议应该使用来自 master 的最新 PCL 版本 QVTKOpenGLWidget 和 vtkGenericOpenGlRenderWindow 与 QTDesigner
我这样做并更改了必要的文件,但是当我将 pclVisuiliser 与 QVTKOpenGLWidget 链接时,编译项目时总是崩溃。
QSurfaceFormat::setDefaultFormat(QVTKOpenGLWidget::defaultFormat());
QApplication app(argc, argv);
QVTKOpenGLWidget *widget = new QVTKOpenGLWidget();
vtkNew<vtkRenderer> renderer;
vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
renderWindow->AddRenderer(renderer.Get());
pcl::visualization::PCLVisualizer::Ptr pclViewer(new pcl::visualization::PCLVisualizer(renderer.Get(), renderWindow.Get(), "viewer", false));
widget->SetRenderWindow(pclViewer->getRenderWindow());
widget->show();
当这两行被注释掉时,项目不会崩溃:
pcl::visualization::PCLVisualizer::Ptr pclViewer(new pcl::visualization::PCLVisualizer(renderer.Get(), renderWindow.Get(), "viewer", false));
widget->SetRenderWindow(pclViewer->getRenderWindow());
我正在使用 Qt 5.9.5 和来自 github 上 master 的最新版本用于 PCl 和 VTK。
有什么遗漏吗?