2

と呼ばれるクラスがあり、クラスとクラスMainWindowのオブジェクトを初期化します。前述の両方のクラスはクラスを継承します。クラスの初期化は次のようになりますGLWidgetclothWidgetQGLWidgetMainWindow

  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: エラー: このコンテキスト内

4

2 に答える 2

1

問題は、(意図せずに) ウィジェットをコピーしようとしていることです。ウィジェットはQObjectベースであるため、コピーできません。「昔」(ごく最近まで) では、それを行う唯一の方法は、コピー コンストラクターをプライベートにすることでした。これは、まさにあなたが得ているエラー メッセージです。コードを再確認して、値のコピーとして渡していないことを確認してください (コメントで Riateche が提案したように)。

于 2013-07-05T15:10:16.047 に答える