VTK教程-VTK在QML中的集成与使用

1 运行效果

项目基于QQuick+VTK演示VTK在QML中的集成
运行图

2 下载项目

下载链接:https://download.csdn.net/download/m0_46655373/92247524

3 代码分析

继承自 QQuickVtkItem 并覆盖 initializeVTK() 方法

class MyVtkItem : public QQuickVtkItem
{
public:
vtkUserData initializeVTK(vtkRenderWindow *renderWindow) override;
};

生成 vtkObject 数据

struct MyVtkData : vtkObject
{
static MyVtkData* New();
vtkTypeMacro(MyVtkData, vtkObject);
// Place all your persistant VTK objects here
};

设置场景、添加对象并返回数据

QQuickVtkItem::vtkUserData MyVtkItem::initializeVTK(vtkRenderWindow *renderWindow)
{
auto vtk = vtkNew<MyVtkData>();
vtkNew<vtkNamedColors> colors;
vtkNew<vtkRenderer> renderer;
renderWindow->SetSize(640, 480);
renderWindow->AddRenderer(renderer);
vtkNew<vtkSphereSource> source;
source->SetRadius(5.0);
source->SetCenter(1, 1, 1);
vtkNew<vtkPolyDataMapper> mapper;
mapper->SetInputConnection(source->GetOutputPort());
vtkNew<vtkActor> actor;
actor->SetMapper(mapper)
actor->GetProperty()->SetColor(
colors->GetColor3d("White").GetData());
renderer->AddActor(actor);
renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());
return vtk;
}

将项目连接到 QML( main.cpp )

qmlRegisterType<MyVtkItem>("Vtk", 1, 0, "MyVtkItem");

将连接移植到 QML 文件

import Vtk 1.0 as Vtk

QML中创建显示窗口Item

Vtk.MyVtkItem {
anchors.fill: parent
anchors.margins: 10
opacity: 0.7
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫荆鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值