2017-08-10 84 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(); 
} 

也許你可以嘗試簡單地修改代碼和讓你的例子以這種方式工作。

編輯:我剛纔看到你在前段時間發佈了這個問題,如果你已經解決了這個問題,請忽略它。