|
1Qter豆
- #ifndef SHAPE_H
- #define SHAPE_H
- #include <QtGui>
- #include <QGraphicsSceneMouseEvent>
- #include <QGraphicsItem>
- #include <QObject>
- class Shape{//Q_OBJECT
- public:
- enum Code { Line, Rect, Ellipse};
- Shape();
- virtual void startDraw(QGraphicsSceneMouseEvent *event) = 0;
- virtual void drawing(QGraphicsSceneMouseEvent *event) = 0;
- virtual QPointF reTurnStartPoint() = 0;
- virtual QPointF reTurnEndPoint() = 0;
- virtual int reTurenShape() = 0 ;
- virtual void storeStartPoint(int p1,int p2) = 0;
- virtual void storeEndPoint(int p1,int p2) = 0;
- virtual void reDrawing() = 0;
- virtual void setZvalue(int m_Zvalue) = 0;
- };
- #endif // SHAPE_H
复制代码- #define RECT_H
- #include <QGraphicsRectItem>
- #include "shape.h"
- #include <QDebug>
- #include <QCursor>
- #include <QKeyEvent>
- #include <QGraphicsSceneHoverEvent>
- #include <QGraphicsSceneContextMenuEvent>
- #include <QMenu>
- #include <QMouseEvent>
- #include <QWheelEvent>
- #include <QGraphicsEffect>
- class Rect : public Shape,public QGraphicsRectItem {
- public: Rect(); // Rect();
- void startDraw(QGraphicsSceneMouseEvent *event);
- void drawing(QGraphicsSceneMouseEvent *event);
- QPointF reTurnStartPoint();
- QPointF reTurnEndPoint();
- int reTurenShape();
- void storeStartPoint(int p1,int p2);
- void storeEndPoint(int p1,int p2);
- void reDrawing();
- void setZvalue(int m_Zvalue);
- void setItemBrush();
-
-
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
- void keyPressEvent(QKeyEvent *event);
- void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
- void wheelEvent(QGraphicsSceneWheelEvent *event);
- void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
-
- void redrawing();
- int m_Z ;
- int m_Shape;
-
- private: QPointF m_storeStartPoint,m_storeEndPoint;
- };
- #endif // RECT_H
复制代码 这是建立矩形类,继承QGraphicsRectItem,我想知道声明一个shape 指针,能否用这个指针去指向Rect对像
|
最佳答案
查看完整内容
QGraphicsRectItem继承自QAbstractGraphicsShapeItem,而QAbstractGraphicsShapeItem继承自QGraphicsItem。
关于图形视图部分的编程,建议先看下:
http://www.qter.org/forum.php?mod=viewthread&tid=125
然后看下《Qt及Qt Quick开发实战讲解》上的第二个方块游戏例子。
|