3

我有一个使用 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。

有什么遗漏吗?

4

0 回答 0