无法在Qt中传递GLWidget类的引用

时间:2013-07-05 14:52:50

标签: qt opengl

我有一个名为MainWindow的类,它初始化GLWidgetclothWidget类的对象,这两个类都继承了QGLWidget类。 MainWindow类中的初始化类似于

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

我在GLWidget中声明了clothwidget.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:错误:在此上下文中

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

并且您无法复制从QObject派生的任何内容,因为构造函数是私有的。