知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。
文章目录
`A.h``A.cpp`Ref.直接先把效果放出来,有需要就往下看。
A.h
// A.h#pragma once#include <QtWidgets/QMainWindow>#include "ui_A.h"#include <vtkSTLReader.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderer.h>#include <vtkRenderWindow.h>#include <vtkSmartPointer.h>#include <vtkGenericOpenGLRenderWindow.h>class A : public QMainWindow{Q_OBJECTpublic:A(QWidget* parent = nullptr);~A();private:Ui::AClass ui;void initVTK();};
A.cpp
// A.cpp#include "A.h"A::A(QWidget* parent): QMainWindow(parent){ui.setupUi(this);// 配置 VTK 的初始设置initVTK();}A::~A(){}void A::initVTK(){// 读取 STL 文件vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();reader->SetFileName("skull_50.stl"); // 请替换为你的 STL 文件路径reader->Update();// 创建映射器和演员vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputConnection(reader->GetOutputPort());vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);// 创建渲染器vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();// 添加演员到渲染器renderer->AddActor(actor);// 创建渲染窗口和渲染窗口交互器vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();renderWindow->AddRenderer(renderer);// 添加到 qvtkWidget 控件中显示ui.qvtkWidget->setRenderWindow(renderWindow);// 开始渲染renderWindow->Render();}