Я довольно новичок в Qt. Я хотел создать простое приложение, в котором треугольник сгенерирован с использованием OpenGL и трех кнопок, изменяющих этот треугольный цвет. К сожалению, я получаю сообщение об ошибке:Qt, используя OpenGL, QGLWidget является приватным
E:\Programy\Qt\5.3\mingw482_32\include\QtOpenGL\qgl.h:457: error: 'QGLWidget::QGLWidget(const QGLWidget&)' is private Q_DISABLE_COPY(QGLWidget)
Я не знаю, что делать. Вот мой код:
mainwindow.h
class MainWindow : public QMainWindow
{
Q_OBJECT
QVBoxLayout *layout;
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private:
QPushButton *redButton;
QPushButton *greenButton;
QPushButton *blueButton;
public slots:
void redSlot(Widget w);
void greenSlot(Widget w);
void blueSlot(Widget w);
};
Слоты в mainwindow.cpp выглядеть следующим образом:
void MainWindow::redSlot(Widget w)
{
w.setColor(red);
}
Widget.h
class Widget : public QGLWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0);
QSize minimumSizeHint() const;
QSize sizeHint() const;
enum color c;
void setColor(enum color color1);
protected:
void initializeGL();
void paintGL();
void resizeGL(int width, int height);
};
перечисление цвет просто перечисление объявлен в другом заголовочном файле
enum color
{
red,
green,
blue
};
Не забудьте зарегистрировать указатель с помощью 'Q_DECLARE_METATYPE (Виджет *) ' –
@DmitrySazonov Я не думаю, что указатели нуждаются в этом, я мог бы ошибаться, хотя –
Спасибо! Это помогло мне! :) – user30935