1.显示效果

VTK_Learning_QVTKOpenGLWidget_QVTKWidget_#include

2.代码

main.cpp

#include "mainwindow.h"
#include <QApplication>

#include <iostream>
//VTK includes
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkSmartPointer.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>

#include <QVTKOpenGLWidget.h>
#include <QApplication>
#include <QVBoxLayout>
#include <QSurfaceFormat>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;// = new QWidget(0);
QVTKOpenGLWidget v(&w);// = new QVTKOpenGLWidget();
v.setFixedSize(300, 300);

auto cylinder = vtkSmartPointer<vtkCylinderSource>::New();
cylinder->SetHeight(3.0);
cylinder->SetRadius(1.0);
cylinder->SetResolution(10);
auto cylinderMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
auto cylinderActor = vtkSmartPointer<vtkActor>::New();
cylinderActor->SetMapper(cylinderMapper);
auto renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor(cylinderActor);
renderer->SetBackground(0.1, 0.2, 0.4);
auto renWin = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
renWin->AddRenderer(renderer);

v.SetRenderWindow(renWin);
w.show();
return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "./ui_mainwindow.h"
//VTK includes
#include <vtkGenericOpenGLRenderWindow.h>
#include <vtkSmartPointer.h>
#include <vtkRenderer.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkInteractorStyleTrackballCamera.h>
#include <vtkCylinderSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>

#include <QVTKOpenGLWidget.h>
#include <QApplication>
#include <QVBoxLayout>
#include <QSurfaceFormat>

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);


ui->qvtkWidget->setFixedSize(300, 300);

auto cylinder1 = vtkSmartPointer<vtkCylinderSource>::New();
cylinder1->SetHeight(3.0);
cylinder1->SetRadius(1.0);
cylinder1->SetResolution(10);
auto cylinderMapper1 = vtkSmartPointer<vtkPolyDataMapper>::New();
cylinderMapper1->SetInputConnection(cylinder1->GetOutputPort());
auto cylinderActor1 = vtkSmartPointer<vtkActor>::New();
cylinderActor1->SetMapper(cylinderMapper1);
auto renderer1 = vtkSmartPointer<vtkRenderer>::New();
renderer1->AddActor(cylinderActor1);
renderer1->SetBackground(0.1, 0.2, 0.4);
auto renWin1 = vtkSmartPointer<vtkRenderWindow>::New();
renWin1->AddRenderer(renderer1);

ui->qvtkWidget->SetRenderWindow(renWin1);
}

MainWindow::~MainWindow()
{
delete ui;
}

3.cmake