代码拉取完成,页面将自动刷新
#ifndef BASEGRAPHICSVIEW_H
#define BASEGRAPHICSVIEW_H
#include <QGraphicsView>
#include <QGraphicsScene>
#include "elementfactory.h"
#include "preferences.h"
#include "utilities.h"
#include "commondef.h"
class BaseSpace;
class BaseElement;
class GroupPickerElement;
class BaseSpaceScene : public QGraphicsScene
{
Q_OBJECT
bool m_drawing;
bool m_picking;
ElementFactoryMethod m_elementFactoryMethod;
BaseElement * m_drawingElement;
BaseElement * m_activeElement;
BaseSpace * m_space;
Q_PROPERTY(PhysicalSize physicalSize READ physicalSize WRITE setPhysicalSize NOTIFY physicalSizeChanged)
PhysicalSize m_physicalSize;
QSize m_actualPxSize;
GroupPickerElement * m_groupPicker;
public:
explicit BaseSpaceScene(BaseSpace *parent);
void setDrawing(bool arg1,ElementFactoryMethod method = 0);
QSize actualPxSize();
inline PhysicalSize physicalSize() const
{
return m_physicalSize;
}
qreal scaleFactor();
void setPicking(bool);
bool picking() const { return m_picking ;}
inline BaseElement * activeElement() const {return m_activeElement;}
void pickElements(QList<BaseElement *> & elements);
public slots:
void setPhysicalSize(PhysicalSize physicalSize);
signals:
void physicalSizeChanged(PhysicalSize physicalSize);
void elementUnpicked();
void elementPicked(BaseElement * element);
protected:
void drawBackground(QPainter *painter, const QRectF &rect) Q_DECL_OVERRIDE;
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
virtual void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
private:
friend class BaseSpace;
};
class BaseSpace : public QGraphicsView
{
Q_OBJECT
BaseSpaceScene * m_scene;
bool m_shiftLock;//shift key is pressed during resize or move
public:
explicit BaseSpace(QWidget *parent = Q_NULLPTR);
~BaseSpace();
//BaseElement * elementSelectd() const;
BaseElement * elementAt(const QPointF & scenePos) const;
void setDrawing(bool arg1,ElementFactoryMethod method = 0);
virtual void init();
void setPicking(bool);
bool picking() const;
inline BaseSpaceScene * baseScene() {return m_scene;}
BaseElement * activeElement() const { return m_scene->activeElement();}
void emitElementCreated(BaseElement * element);
//automatically set a element name
QString nameElementAuto(int graphicsType) const;
protected:
//Picker * m_picker;
void resizeEvent(QResizeEvent *event) override;
void scrollContentsBy(int dx, int dy) override;
public slots:
void zoom(qreal factor);
void zoomToFit();
void pickElements(QList<BaseElement *> & elements);
signals:
void scaled();
void elementCreated(BaseElement * element);
//void picked(BaseElement * value);
//void unpicked(BaseElement * value);
void originalSizeChanged(QSize originalSize);
};
#endif // BASEGRAPHICSVIEW_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。