2

我有一个名为的类MainWindow,它初始化GLWidgetclothWidget类的对象,上述两个类都继承QGLWidget类。类中的初始化MainWindow就像

  glWidget = new GLWidget();
 clWidgetf = new clothWidget();

我有一个GLWidgetclothwidget.h. 当我做

clwidgetf->gl = glwidget ( here gl is object of class GLWidget declared in ClothWidget class) in MainWindow 

我收到以下错误

/usr/include/qt4/QtOpenGL/qgl.h:592:错误:'QGLWidget& QGLWidget::operator=(const QGLWidget&)' 是私有的

/home/arun/Desktop/garment/glwidget.h:8:错误:在此上下文中

4

2 回答 2

1

问题是您(无意中)试图复制小部件,并且由于它是QObject基于它的,因此无法复制。在“过去”(直到最近),唯一的方法是将复制构造函数设为私有,这正是您收到的错误消息。仔细检查您的代码以确保您没有作为值副本传递(正如 Riateche 在评论中建议的那样)。

于 2013-07-05T15:10:16.047 回答
0

如果你想要一个引用,那么你必须用你的对象初始化它,你不能在其他地方设置它,但很可能你想要一个指针,所以你应该将指针传递给你的函数并使你的类成员也成为一个指针,或者获取一个地址passet 引用并仍然将其分配给某个指针。

而且你不能复制从 QObject 派生的任何东西,因为构造函数是私有的。

于 2013-07-05T16:08:03.027 回答