这个相对来说可能复杂些,但是,后续的操作可能会灵活些(不like QTDesigner的盆友可以用这个)。
//main.cpp
#include
#include
int main (int argc, char * argv[])
{
QApplication mainapp(argc, argv);
MainWindow mainwindow;
mainwindow.show();
return mainapp.exec();
}
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#if QT_VERSION >= 0x050000
#include
#else
#include
#endif
#include
class QVTKWidget;
class MainWindow : public QMainWindow
{
public:
explicit MainWindow (QWidget* parent = 0);
private:
//创建对象
QVTKWidget* qvtkWidget;
boost::shared_ptr
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include "QVTKWidget.h"
#include "vtkRenderWindow.h"
MainWindow::MainWindow( QWidget * parent) : QMainWindow( parent )
{
setWindowTitle( tr("PointCloud"));
//为创建的对象开辟空间
qvtkWidget = new QVTKWidget(this);
viewer.reset (new pcl::visualization::PCLVisualizer ("viewer", false));
//这两句代码很重要,至于为何重要,我不是很看的懂,可以一块沟通,
qvtkWidget->SetRenderWindow (viewer->getRenderWindow ());
viewer->setupInteractor (qvtkWidget->GetInteractor (), qvtkWidget->GetRenderWindow ());
setCentralWidget( qvtkWidget );
qvtkWidget->update ();
}
温馨提示:必要的头文件一定添加的。
#include
#include "QVTKWidget.h"
#include "vtkRenderWindow.h"
最开始时,由于没有包含vtkRenderWindow.h头文件,导致出现奇怪的数据。
点云显示结果为
qq:2132591244,一起沟通,一起学习,一起加油。