• 9390阅读
  • 2回复

[讨论]field ‘painter’ has incomplete type谁能帮我解决问题啊?我非常的不明白怎么弄了... [复制链接]

上一主题 下一主题
离线hmilyylimh
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-04
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.然后请各位大侠帮我看看,我现在不知道该怎么该了?请大侠指点指点,我想实验的图形为:
离线dbzhang800

只看该作者 1楼 发表于: 2011-05-04
包含必须的头文件先。 QPainter
离线hmilyylimh
只看该作者 2楼 发表于: 2011-05-04
果然正确了,谢谢了,感激不尽,由于初学,还有好多的东西不懂,还请见谅..
快速回复
限100 字节
 
上一个 下一个