2017-08-10 45 views
0

我完全不熟悉编程和Qt。我读过Qt 3d,但我不知道如何处理它。我需要的只是一个简单的长方体,我可以用倾斜传感器移动。我正在使用qt 5.6。如何用qt 3d做任何事情?

我试图理解这些例子,但他们总是在使用我不知道的东西。

// Cuboid shape data 
Qt3DRender::QCuboidMesh *cuboid = new Qt3DRender::QCuboidMesh(); 

// CuboidMesh Transform 
Qt3DCore::QTransform *cuboidTransform = new Qt3DCore::QTransform(); 
cuboidTransform->setScale(4.0f); 
cuboidTransform->setTranslation(QVector3D(4.0f, -4.0f, 0.0f)); 

Qt3DRender::QPhongMaterial *cuboidMaterial = new Qt3DRender::QPhongMaterial(); 
cuboidMaterial->setDiffuse(QColor(QRgb(0x665423))); 

//Cuboid 
m_cuboidEntity = new Qt3DCore::QEntity(m_rootEntity); 
m_cuboidEntity->addComponent(cuboid); 
m_cuboidEntity->addComponent(cuboidMaterial); 
m_cuboidEntity->addComponent(cuboidTransform); 

我也试着复制这个例子的代码,但猜测,它不工作。

回答

0

我会作出这样的评论,但我没有足够的信誉使这里来的答案:

到底在哪你这个代码复制到?您的main

您是否已经尝试过这些具体示例:Basic Shapes ExampleOrbit Example

如果你离开了变换轨道例如控制器,你可以看到在main.cpp该场景的设置和窗口创建在main功能:

int main(int argc, char* argv[]) 
{ 
    QGuiApplication app(argc, argv); 
    Qt3DExtras::Qt3DWindow view; 

    Qt3DCore::QEntity *scene = createScene(); 

    // some camera setup follows 

    view.setRootEntity(scene); 
    view.show(); 

    return app.exec(); 
} 

也许你可以尝试简单地修改代码和让你的例子以这种方式工作。

编辑:我刚才看到你在前段时间发布了这个问题,如果你已经解决了这个问题,请忽略它。