1. graphicsview.h 头文件
#ifndef GRAPHICSVIEW_H
#define GRAPHICSVIEW_H
#include <QtGui/QWidget>
#include <QGraphcsView>
class QGraphicsScene;
class DrawApp;
class QGraphcsView;
class QGraphcs;
class QPainter;
class DrawApp : public QWidget
{
Q_OBJECT
public:
DrawApp(QWidget *parent=0);
private:
QGraphicsScene * scene;
DrawApp * da;
QGraphcsView * view;
QPainter painter;
protected:
void paintEvent(QPaintEvent *event);
};
#endif
2. graphicsview.cpp文件
#include <QGraphcsView>
#include <QApplication>
#include <QGraphicsScene>
#include <QPainter>
#include <QPaintEvent>
#include <DrawApp>
#include "graphicsview.h"
DrawApp::DrawApp(QWidget *parent)
:QWidget(parent)
{
}
void DrawApp::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawLine(10,10,150,300);
}
int main(int argc,char **argv)
{
QApplication a(argc,argv);
QGraphicsScene *scene=new QGraphicsScene;
//创建了一个 QGraphicsScene 作为场
scene->addLine(10,10,150,300);//在 scene 中添加了一条直线
QGraphcsView *view=new QGraphcsView(scene);
//创建一个 QGraphicsView 对象进行观察
view->resize(500,500);
view->setWindowTitle("Graphics View");
view->show();
DrawApp *da=new DrawApp;
da->resize(500,500);
da->setWindowTitle("QWidget");
da->show();
return a.exec();
}
3. 然后编译出来就报错,报错为:
hmily@xtu:~/文档/24hours_leaar_qt/graphicsview_5.5$ 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 graphicsview.o graphicsview.cpp
graphicsview.cpp:1:24: error: QGraphcsView: 没有那个文件或目录
graphicsview.cpp:6:19: error: DrawApp: 没有那个文件或目录
graphicsview.cpp:16: warning: unused parameter ‘event’
graphicsview.cpp: In function ‘int main(int, char**)’:
graphicsview.cpp:28: error: invalid use of incomplete type ‘struct QGraphcsView’
graphicsview.h:8: error: forward declaration of ‘struct QGraphcsView’
graphicsview.cpp:30: error: invalid use of incomplete type ‘struct QGraphcsView’
graphicsview.h:8: error: forward declaration of ‘struct QGraphcsView’
graphicsview.cpp:31: error: invalid use of incomplete type ‘struct QGraphcsView’
graphicsview.h:8: error: forward declaration of ‘struct QGraphcsView’
graphicsview.cpp:32: error: invalid use of incomplete type ‘struct QGraphcsView’
graphicsview.h:8: error: forward declaration of ‘struct QGraphcsView’
make: *** [graphicsview.o] 错误 1
4.还请各位帮忙解决解决.....................我想实现的图像为: