#ifndef DESIGNER_SCENE_H #define DESIGNER_SCENE_H #include #include "baseScene.h" #include "graphicsDataModel/fixedPortsModel.h" class GraphicsItemGroup; class DrawingPanel; class DesignerScene : public BaseScene { Q_OBJECT public: DesignerScene(FixedPortsModel* graphModel,QObject *parent = 0); virtual ~DesignerScene(); void setGridVisible(bool); void setView(QGraphicsView* view) { m_pView = view; } QGraphicsView* getView() { return m_pView; } void callParentEvent(QGraphicsSceneMouseEvent*); GraphicsItemGroup* createGroup(); void destroyGroup(); signals: void signalAddItem(QGraphicsItem*); protected: void drawBackground(QPainter*, const QRectF&) override; void mousePressEvent(QGraphicsSceneMouseEvent*) override; void mouseMoveEvent(QGraphicsSceneMouseEvent*) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override; void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*) override; void keyPressEvent(QKeyEvent*) override; void keyReleaseEvent(QKeyEvent*) override; void contextMenuEvent(QGraphicsSceneContextMenuEvent *contextMenuEvent) override; void dragEnterEvent(QGraphicsSceneDragDropEvent *event) override; void dragMoveEvent(QGraphicsSceneDragDropEvent *event) override; void dropEvent(QGraphicsSceneDragDropEvent *event) override; private: bool m_bGridVisible; QGraphicsView* m_pView; DrawingPanel* m_pDrawingPanel; //保存父指针 private: FixedPortsModel* _graphModel; }; #endif