在Qt GUI主窗口上嵌入PCL Viewer

use*_*947 5 qt point-cloud-library

我正在尝试在Windows 7 64位计算机上使用QtCreator开发用户界面。该用户界面将部署在32位Windows 7计算机上,并控制结构光应用程序的投影仪和照相机。由于无法控制的原因(与相机和投影仪的API兼容),我将为此使用MS VS 2010 32位编译器。经过两周的尝试,让我需要一起工作(Qt 4.8.4,QtCreator和Point Cloud Library),现在我面临一个小问题。

有什么方法可以将PCL点云查看器嵌入到我的Qt GUI主窗口中?问题是,当我使用PCL查看器时,它会弹出一个单独的窗口。我希望该窗口被嵌入到主窗口中,并且希望仍然能够与之交互(旋转,平移,缩放等)。

正如您可能从我的帖子中看到的那样,我是Qt / PCL / etc上的新手,因此,非常感谢使用最少代码来执行此操作的示例。我已经进行了数周的研究,尽管找不到Qt Widget的印象,但我一直无法找到解决方案。

Bar*_*art 6

您可以简单地通过QVTKWidget使用PCL的PCLVisualizer在此对其进行了详细介绍。这是我当前正在运行的设置。因此,您最终将按照以下(伪)代码的方式进行操作:

在标题中:

class PointCloudWidget : public QVTKWidget
{
    //Whatever comes before (constructor, methods, etc.)

private:

    pcl::visualization::PCLVisualizer m_visualizer;
};
Run Code Online (Sandbox Code Playgroud)

在您的cpp中:

PointCloudWidget::PointCloudWidget(QWidget *parent) : QVTKWidget(parent)
{
    this->SetRenderWindow(m_visualizer.getRenderWindow());
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用可视化器实现与PCL查看器相同的功能。