QVTKOpenGLNativeWidget显示点云

11 篇文章 0 订阅
3 篇文章 0 订阅

问题描述:在之前的电脑上使用的是QVTKWidget进行点云的显示,将代码移植到新的电脑上,在框选点云的时候就出现了背景点云消失的问题,作为一个细节控十分苦恼。

解决办法:翻阅了很多资料发现要根据QT和VTK版本进行甄别,下面引用的博客链接这个感谢博主大大

(1)Qt版本

    在Qt5.4以前,在Qt中使用OpenGL一般是使用QGLWidget,相对应的VTK控件只能选择QVTKWidget/QVTKWidget2。
    Qt5.4及后面版本中,引入了QOpenGLWidget。对应的VTK控件为QVTKOpenGLWidget/QVTKOpenGLNativeWidget


(2)VTK版本(Qt版本为5.4之后的情况下)topSpInfo

    在VTK8.2之前的版本,一般是使用QVTKOpenGLWidget;
    在VTK8.2及之后的版本里,引入了QVTKOpenGLNativeWidget;

检查了我的版本之后,我的QT是5.12.8,VTK是8.2,我应该使用QVTKOpenGLNativeWidget。

查阅VTK官网,发现两者之间的变化主要在于

资料链接

链接: 百度网盘 请输入提取码

提取码: efxr

1.代码方面

首先添加一个头文件

#include <vtkGenericOpenGLRenderWindow.h>

其次

vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;

vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(source->GetOutputPort());

还学会了一种新的颜色设置

vtkNew<vtkNamedColors> colors;
renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());

有很多种颜色

  • 基本颜色:‌红色(‌Red)‌、‌绿色(‌Green)‌、‌蓝色(‌Blue)‌、‌黄色(‌Yellow)‌、‌青色(‌Cyan)‌、‌品红(‌Magenta)‌、‌黑色(‌Black)‌、‌白色(‌White)‌等。‌
  • 扩展颜色:‌橙色(‌Orange)‌、‌紫色(‌Purple)‌、‌棕色(‌Brown)‌、‌灰色(‌Gray)‌等。‌
  • 更具体的颜色名称:‌如“SkyBlue”(‌天蓝色)‌、‌“DarkRed”(‌深红色)‌、‌“LightGreen”(‌浅绿色)‌等。‌

2.QT控件升级

首先找到控件OpenGL Widget

拖拽一个出来,右击控件,选择提升为,填写类名称和头文件(注意要大小写与类名称一致)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值