C++ 如何将纹理添加到";“基本形状”;来自qt3d演示的示例

C++ 如何将纹理添加到";“基本形状”;来自qt3d演示的示例,c++,qt3d,C++,Qt3d,我是新来的。 我正在尝试向示例项目“basicshapes”添加纹理,该项目来自Qt Creator演示。 它是用C++编写的,它是完美的,因为它是我的需要。 使用的类有: Qt3D::QTransform Qt3D::QSphereMesh Qt3D::QPhongMaterial 还有很多其他的 但我不知道如何给它添加纹理。 有一个片段: Qt3D::QPhongMaterial *sphereMaterial = new Qt3D::QPhongMaterial(); sphereMat

我是新来的。 我正在尝试向示例项目“basicshapes”添加纹理,该项目来自Qt Creator演示。 它是用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

我不是Qt专家,但是通过查看编译器错误,您需要重写doClone方法,因为它被限定为纯虚拟的

有关编译器错误的更多信息,请访问MSDN:


我希望这能有所帮助。

我如何重写此方法:类QT3DCORESHARED\u导出QNode:public QObject{…private:virtual QNode*doClone()const=0;…}。我正在尝试:QNode*doClone(){},但同样的错误仍然发生。您缺少常量限定符。Try:QNode*doClone()常量{…}