实现效果

步骤拆分
- 首先我们要使用到QT的表格控件
- 我们每次选点都要将点的信息添加到表格控件里面去
- 给表格控件添加按钮
代码实现


void MainWindow::inittable(pcl::PointXYZRGB current_point){
std::cout<<current_point.x<<current_point.y<<current_point.z<<std::endl;
int rowCount = ui->tableWidget->rowCount();
point_pick_num++;
QString kill_btn_name="killbtn"+QString::number(point_pick_num);
QString point_x = QString::number(current_point.x);
QString point_y = QString::number(current_point.y);
QString point_z = QString::number(current_point.z);
int curRow = ui->tableWidget->currentRow();
qDebug() << curRow;
int newRow = curRow + 1;
ui->tableWidget->insertRow(newRow);
int colCount = ui->tableWidget->columnCount();
for(int col=0; col<colCount; col++){
switch(col){
case 0:{ QTableWidgetItem *it = new QTableWidgetItem(point_x);ui->tableWidget->setItem(newRow, col, it);break;}
case 1:{ QTableWidgetItem *it = new QTableWidgetItem(point_y);ui->tableWidget->setItem(newRow, col, it);break;}
case 2:{ QTableWidgetItem *it = new QTableWidgetItem(point_z);ui->tableWidget->setItem(newRow, col, it);break;}
case 3:{
QPushButton *killBtn=new QPushButton("取消选择");
killBtn->setObjectName(kill_btn_name);
ui->tableWidget->setCellWidget(newRow,col,killBtn);
connect(killBtn, &QPushButton::clicked, this, deletePoint);
break;
}
}
}
}