我是 Qt 的新手。我正在尝试将纹理添加到来自 Qt Creator 演示的示例项目“basicshapes”。它是用完美的 C++ 编写的,因为这是我的需要。有使用的类,例如:
Qt3D::QTransform
Qt3D::QSphereMesh
Qt3D::QPhongMaterial
和许多其他人,但我无法意识到如何为其添加纹理。有一个片段:
Qt3D::QPhongMaterial *sphereMaterial = new Qt3D::QPhongMaterial();
sphereMaterial->setDiffuse(QColor(QRgb(0xa69929)));
所以我试图添加:
MyTextureImage *t = new MyTextureImage();
MyTextureProvider *x = new MyTextureProvider();
x->addTextureImage(t);
sphereMaterial->setTextureParameter("SphereTexture", x);
在我从抽象类派生之前:
class MyTextureProvider : public Qt3D::QAbstractTextureProvider { };
class MyTextureImage : public Qt3D::QAbstractTextureImage { };
但我得到了错误:
error: C2259: 'MyTextureImage' : cannot instantiate abstract class
due to following members:
'Qt3D::QNode *Qt3D::QNode::doClone(void) const' : is abstract