我有一个名为MainWindow
的类,它初始化GLWidget
和clothWidget
类的对象,这两个类都继承了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:错误:在此上下文中
答案 0 :(得分:1)
问题是你(无意中)试图复制小部件,因为它是基于QObject
的,所以无法复制。在“过去的日子”(直到最近),唯一的方法是使复制构造函数成为私有,这正是你得到的错误信息。仔细检查您的代码,确保您没有作为值副本传递(如Riateche在评论中所建议的那样)。
答案 1 :(得分:0)
如果你想要一个引用然后你必须用你的对象初始化它,你不能在别处设置它,但很可能你想要一个指针,所以你应该将指针传递给你的函数并使你的类成员也是一个指针,或者获取passet引用的地址,并仍然将其指定给某个指针。
并且您无法复制从QObject派生的任何内容,因为构造函数是私有的。