PlotterHMI/datafile/view/mygraphicsitem.h
huahaiyan 3ce55cebbd 20240308
1、梳理代码,修改绘制会绘制两次的bug;
2、增加正向旋转功能,线宽设置功能;
3、测试压缩算法,完成;
2024-03-08 16:33:05 +08:00

58 lines
1.5 KiB
C++

#ifndef MYGRAPHICSITEM_H
#define MYGRAPHICSITEM_H
#include <QObject>
#include <QPainter>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QPixmap>
#include <QPicture>
#include <QList>
#include <QtGui>
#include "machine/bmp/creatprintbmp.h"
#include "datafile/view/drawdata.h"
class MyGraphicsItem : public QObject, public QGraphicsItem
{
Q_OBJECT
Q_INTERFACES(QGraphicsItem) //通知要实现的类构成何种界面的宏
public:
MyGraphicsItem();
~MyGraphicsItem();
//绘图区域
QRectF boundingRect() const;
//绘制按钮图像的函数
void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget = 0);
protected: //事件
void mousePressEvent(QGraphicsSceneMouseEvent* event);
void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
private:
QPicture m_picture;
QPainterPath m_drawPath;
QPixmap m_blockPixmap;
QPoint m_point;
QRectF m_boundingRect;//返回形状
int m_fileType;
public:
QPicture getPictureByDat(Marker marker,int penWidth = 1);
QPicture getPictureByBmp(QPixmap pixmap,int penWidth = 1);
QPainterPath getDrawPath();
void setPicture(QPicture pic);
void setPaintPath(QPainterPath path);
void setPaintPathAndPic(QPainterPath path,QPicture pic);
void reflushBlockPos(QPoint p);//更显打印块位置
public slots:
};
#endif // MYGRAPHICSITEM_H