0
我对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注册指针(Widget *)' – 2014-10-30 08:21:30
@DmitrySazonov我不认为指针需要,我可能错了,虽然 – 2014-10-30 08:46:48
谢谢!这帮助了我! :) – user30935 2014-10-30 09:41:03