728x90
본 내용은 Qt6.2.1 + Vtk9.0 버전을 기준으로 작성하였다.
개발 환경 구축을 위한 내용은 다음을 참조하길 바란다. Qt6.2+Vtk9.0+Itk5.2 개발환경구축(예정)
QtWidget 에 Vtk의 render window를 설정하는 방법을 설명하고자 한다.
1. OpenGLWidget Promotion
Qt Designer의 Widget 상자에서 OpenGL Widget 을 메인 Widget에 추가한다
OpenGLWidget을 오른쪽 마우스 클릭하여 다음으로 승격(Promotion)을 클릭한다.
Promotion 창이 나타나면 클래스 이름에 QVTKOpenGLWidget 을 입력하고 추가 후 승격 버튼을 클릭한다.
클래스이름을 입력할 때 대소문자를 맞춰서 입력해야한다.
Promotion이 적용이 되면 widget의 클래스가 qvtkopenglwidget으로 변경된다.
이렇게 하면 designer 에서의 작업은 완료되었다.
2. OpenGLWidget 객체를 Vtk RenderWindow에 연결하기
<mainwindow.cpp>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
// Widget에 RenderWindow 객체 입력
this->ui->openGLWidget->setRenderWindow(renderWindow);
vtkNew<vtkNamedColors> colors;
// Sphere
vtkNew<vtkSphereSource> sphereSource;
sphereSource->Update();
vtkNew<vtkPolyDataMapper> sphereMapper;
sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
vtkNew<vtkActor> sphereActor;
sphereActor->SetMapper(sphereMapper);
sphereActor->GetProperty()->SetColor(colors->GetColor4d("Tomato").GetData());
// VTK Renderer
vtkNew<vtkRenderer> renderer;
renderer->AddActor(sphereActor);
renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());
// Add renderer
renderWindow->AddRenderer(renderer);
}
코드가 문제없이 실행된다면 아래와 같이 Qt의 Widget에 vtk render window가 입력되어 나타난다.
728x90
728x90