实现效果
可以看到,左边的选点参数列表和上方属性列表大小一直在动态的改变,这里我们是通过QT的拆分器来实现的
实现步骤
- 首先在mainWindow头文件引入
#include <QSplitter> - 设置主窗口布局和VTK窗口布局。两个窗口的布局不相同分别为3/1
- 在MainWindow的构造函数地方添加如下代码和布局 实现功能
代码实现
// 设置两个窗口比例
ui->main_layout->setStretchFactor(ui->vtk_layout,3);
ui->main_layout->setStretchFactor(ui->control_layout,1);
//初始化拆分器布局
QSplitter* pHSplitter = new QSplitter(Qt::Vertical, this);
pHSplitter->addWidget(ui->groupBox);
pHSplitter->addWidget(ui->groupBox_2);
ui->control_layout->addWidget(pHSplitter);
//初始化PCL显示控件
viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
viewer->setBackgroundColor(0.56,0.6,0.623);
ui->qvtkWidget->SetRenderWindow(viewer->getRenderWindow());
viewer->setupInteractor(ui->qvtkWidget->GetInteractor(), ui->qvtkWidget->GetRenderWindow());
ui->qvtkWidget->update();