Попытка создать 3D-рендеринг моего объекта и поместить его в приложение QWidget, но у меня возникли некоторые проблемы с преобразованием Q3DWidget в QWidget. Я новичок в Qt и заранее прошу прощения за некоторые нелепые ошибки, если они у меня есть. Вот как я пытался это сделать:
Qt3DExtras::Qt3DWindow view;
Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity;
Qt3DCore::QEntity *model = new Qt3DCore::QEntity(rootEntity);
Qt3DExtras::QPhongMaterial *material = new Qt3DExtras::QPhongMaterial();
material->setDiffuse(QColor(125, 125, 125));
Qt3DRender::QMesh *modelMesh = new Qt3DRender::QMesh;
QUrl data = QUrl::fromLocalFile("C:\\CDH\\model.stl");
modelMesh->setMeshName("Device model");
modelMesh->setSource(data);
model->addComponent(modelMesh);
model->addComponent(material);
Qt3DRender::QCamera *camera = view.camera();
camera->lens()->setPerspectiveProjection(40.0f, 16.0f/9.0f, 0.1f, 1000.0f);
camera->setPosition(QVector3D(0, 0, 40.0f));
camera->setViewCenter(QVector3D(0, 0, 0));
Qt3DCore::QEntity *lightEntity = new Qt3DCore::QEntity(rootEntity);
Qt3DRender::QPointLight *light = new Qt3DRender::QPointLight(lightEntity);
light->setColor("black");
light->setIntensity(0.8f);
lightEntity->addComponent(light);
Qt3DCore::QTransform *lightTransform = new Qt3DCore::QTransform(lightEntity);
lightTransform->setTranslation(QVector3D(60, 0, 40.0f));
lightEntity->addComponent(lightTransform);
Qt3DExtras::QOrbitCameraController *camController = new
Qt3DExtras::QOrbitCameraController(rootEntity);
camController->setCamera(camera);
view.setRootEntity(rootEntity);
view.show();
QWidget *w = QWidget::createWindowContainer(&view);
//some widget handling
w->show();
Хорошо строит (MinGW 7.3.0), без ошибок и предупреждений, но просто вылетает при попытке запустить приложение.
Заранее спасибо за ваши ответы!