当前位置:   article > 正文

点云数据处理实现Qt界面常用功能_qt 点云交互

qt 点云交互

1、主窗口设置

ui.setupUi(this);
this->setWindowTitle("点云处理UI");
this->setGeometry(0, 0, 1200, 900);         //设置窗口大小
this->setFixedSize(1200, 900);              //设置窗口固定大小
  • 1
  • 2
  • 3
  • 4

2、pcl的QVTK控件

viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));
viewer->setBackgroundColor(0, 0.3, 0.4);
ui.qvtkWidget->SetRenderWindow(viewer->getRenderWindow());              //显示视窗放到ui界面
viewer->setupInteractor(ui.qvtkWidget->GetInteractor(), ui.qvtkWidget->GetRenderWindow());
ui.qvtkWidget->update();                                                //更新视窗显示
  • 1
  • 2
  • 3
  • 4
  • 5

3、菜单栏及其选项

//3、创建菜单栏、下拉框
QMenuBar* menu_bar = new QMenuBar(this);            //创建一个菜单栏
this->setMenuBar(menu_bar);                         //设置为MainWindow的菜单栏
menu_bar->setStyleSheet("font-size : 18px");
//菜单栏-文件项
QMenu* file_menu = new QMenu("文件", menu_bar);   //菜单栏创建一个文件项
QAction* open_action = new QAction("读取");       //文件下拉框
file_menu->addAction(open_action);//添加动作到文件项,QAction就会自动变成子菜单
QAction* save_action = new QAction("保存");
file_menu->addAction(save_action);
file_menu->addSeparator();        //添加菜单分隔符
QAction* quit_action = new QAction("退出");
file_menu->addAction(quit_action);
menu_bar->addMenu(file_menu);       //最后把文件项添加到菜单栏
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4、TreeView树形控件

学习来源:参考博文

Qt中使用model来管理数据与视图的关系。QT提供了一些现成的models用于处理数据项:

  • QStringListModel 用于存储简单的QString列表。
  • QStandardItemModel 管理复杂的树型结构数据项,每项都可以包含任意数据。
  • QDirModel提供本地文件系统中的文件与目录信息。
  • QSqlQueryModel,QSqlTableModel,QSqlRelationTableModel用来访问数据库。
QStandardItemModel *model = new QStandardItemModel(this);
//设置表头隐藏
//ui->treeView->setHeaderHidden(true);
//设置model 
ui->treeView->setModel(model);
//设置展开
ui->treeView->expandAll();

//model分级效果
model->setItem(0,0,new QStandardItem("one"));
model->item(0,0)->setChild(0,0,new QStandardItem("二级1"));
model->item(0,0)->setChild(1,0,new QStandardItem("二级2"));
model->setItem(1,0,new QStandardItem("two"));
model->item(1,0)->setChild(0,0,new QStandardItem("二级1"));

//设置可选框
model->item(0,0)->setCheckable(true);
model->item(0,0)->setCheckState(Qt::Checked);
model->item(0,0)->child(0,0)->setCheckable(true);
model->item(0,0)->child(0,0)->setCheckState(Qt::Unchecked);
model->item(0,0)->child(1,0)->setCheckable(true);
model->item(0,0)->child(1,0)->setCheckState(Qt::Checked);

//添加节点
QStandardItem* itemFolder = new QStandardItem(QStringLiteral("cloud%1").arg(cloud_vec.size() - 1));//新建节点
itemFolder->setCheckable(true);         //打开复选框
itemFolder->setCheckState(Qt::Checked); //设置选中状态
model->appendRow(itemFolder);           //添加到model行

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/461793
推荐阅读
相关标签
  

闽ICP备14008679号