#include #include #include #include #include #include #include #include #include #include #include struct MyVtkItem : QQuickVTKItem { vtkUserData initializeVTK(vtkRenderWindow* renderWindow) override { // Create a cone pipeline and add it to the view vtkNew cone; vtkNew mapper; mapper->SetInputConnection(cone->GetOutputPort()); vtkNew actor; actor->SetMapper(mapper); vtkNew renderer; renderer->AddActor(actor); renderer->ResetCamera(); renderer->SetBackground(0.0, 1.0, 1.0); renderer->SetBackground2(1.0, 0.0, 0.0); renderer->SetGradientBackground(true); renderWindow->AddRenderer(renderer); renderWindow->SetMultiSamples(16); return nullptr; } }; int main(int argc, char* argv[]) { QQuickVTKItem::setGraphicsApi(); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif QGuiApplication app(argc, argv); qmlRegisterType("com.vtk.example", 1, 0, "MyVtkItem"); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); if (engine.rootObjects().isEmpty()) return -1; return app.exec(); }