55 lines
1.3 KiB
C
55 lines
1.3 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/hpgl/importhpgl.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);
|
||
|
|
||
|
void creatPicture(Marker marker);
|
||
|
void creatPicture(QPixmap pixmap);
|
||
|
|
||
|
protected: //事件
|
||
|
void mousePressEvent(QGraphicsSceneMouseEvent* event);
|
||
|
void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
|
||
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent* event);
|
||
|
|
||
|
private:
|
||
|
QPicture m_picture;
|
||
|
QPixmap m_blockPixmap;
|
||
|
QPoint m_point;
|
||
|
QRectF m_boundingRect;//返回形状
|
||
|
|
||
|
public:
|
||
|
QPicture getPicture(Marker marker,int penWidth = 1);
|
||
|
void setPicture(QPicture pic);
|
||
|
void reflushBlockPos(QPoint p);//更显打印块位置
|
||
|
|
||
|
public slots:
|
||
|
};
|
||
|
|
||
|
#endif // MYGRAPHICSITEM_H
|