1. painterwidget.h 头文件
#ifndef PAINTEDWIDGET_H
#define PAINTEDWIDGET_H
#include <QtGui/QWidget>
class QPainter;
class PaintedWidget : public QWidget
{
Q_OBJECT
public:
PaintedWidget(QWidget * parent=0);
// ~mainwindow();
private:
QPainter painter;
protected:
void paintEvent(QPaintEvent * event);
};
#endif
2. main.cpp文件
#include <QApplication>
#include "painterwidget.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
PaintedWidget window;
window.show();
return app.exec();
}
3. painterwidget.cpp 文件
#include <QtGui/QWidget>
#include "painterwidget.h"
PaintedWidget::PaintedWidget(QWidget * parent) //构造函数
:QWidget(parent)
{
resize(800,600);
setWindowTitle(tr("Paint Demo"));
}
void PaintedWidget::paintEvent(QPaintEvent * event)
{
QPainter painter(this);
painter.drawLine(80,100,650,500);
painter.setPen(Qt::red);
painter.drawRect(10,10,100,400);
painter.setPen(QPen(Qt::green, 5));
painter.setBrush(Qt::blue);
painter.drawEllipse(50,150,400,200);
}
4. 然后编译出来就报错,报错为:
hmily@xtu:~/文档/24hours_leaar_qt/painterwidget_5.4$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.7.2/mkspecs/linux-g++ -I. -I/usr/local/Trolltech/Qt-4.7.2/include/QtCore -I/usr/local/Trolltech/Qt-4.7.2/include/QtGui -I/usr/local/Trolltech/Qt-4.7.2/include -I. -I. -o main.o main.cpp
In file included from main.cpp:2:
painterwidget.h:16: error: field ‘painter’ has incomplete type
make: *** [main.o] 错误 1
5.然后请各位大侠帮我看看,我现在不知道该怎么该了?请大侠指点指点,我想实验的图形为: