Я пытаюсь скомпилировать свой объект QGLWidget для простой программы рисования, но у меня появляются довольно странные ошибки, которые я не могу понять.
/home/gmercer/Qt/Projects/2dPainting/2dPainting/glwidget.cpp:11: error: undefined reference to `QGLFormat::QGLFormat(QFlags<QGL::FormatOption>, int)'
/home/gmercer/Qt/Projects/2dPainting/2dPainting/glwidget.cpp:11: error: undefined reference to `QGLWidget::QGLWidget(QGLFormat const&, QWidget*, QGLWidget const*, QFlags<Qt::WindowType>)'
/home/gmercer/Qt/Projects/2dPainting/2dPainting/glwidget.cpp:11: error: undefined reference to `QGLFormat::~QGLFormat()'
и этот список можно продолжить, все указывает на конструктор. Это то, что я не в том числе?
.про файл
#-------------------------------------------------
#
# Project created by QtCreator 2013-11-18T09:16:48
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 2dPainting
TEMPLATE = appSOURCES += main.cpp\
window.cpp \
helper.cpp \
widget.cpp \
glwidget.cpp
HEADERS += window.h \
helper.h \
widget.h \
glwidget.h
FORMS +=
glwidget.h
#include <QtOpenGL/QGLWidget>
class Helper;
class GLWidget: public QGLWidget
{
Q_OBJECT
public:
GLWidget(Helper *helper, QWidget *parent);
public slots:
void animate();
protected:
void paintEvent(QPaintEvent *event);
private:
Helper *helper;
int elapsed;
};
glwidget.cpp
#include "glwidget.h"#include "helper.h"
#include <QTimer>
#include <QtOpenGL/QGLFormat>
#include <QtOpenGL/QGLFunctions>
#include <QtOpenGL/QGLWidget>
GLWidget::GLWidget(Helper *helper, QWidget *parent):
QGLWidget(QGLFormat(QGL::SampleBuffers), parent),
helper(helper)
{
elapsed = 0;
setFixedSize(200, 200);
setAutoFillBackground(false);
}
helper.h
#include <QBrush>
#include <QFont>
#include <QPen>
#include <QWidget>
class Helper
{
public:
Helper();
public:
void paint(QPainter *painter, QPaintEvent *event, int elapsed);
private:
QBrush background;
QBrush circleBrush;
QFont textFont;
QPen circlePen;
QPen textPen;
};
QT += core gui
Добавьте «opengl» в этот список.
Других решений пока нет …