|
|
#pragma once
|
|
|
|
|
|
#include <QObject>
|
|
|
#include <QGraphicsRectItem>
|
|
|
#include <QGraphicsSceneMouseEvent>
|
|
|
#include <QBrush>
|
|
|
#include <QPainter>
|
|
|
#include <vector>
|
|
|
#include <memory>
|
|
|
#include "global.h"
|
|
|
|
|
|
class MyQGraphicsRectItem : public QObject, public QGraphicsRectItem
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
public:
|
|
|
MyQGraphicsRectItem(qreal x, qreal y, qreal width, qreal height, QGraphicsItem *parent = nullptr)
|
|
|
: QGraphicsRectItem(x, y, width, height, parent)
|
|
|
{
|
|
|
setRect(0, 0, width, height); // 设置矩形的初始大小,但不移动位置
|
|
|
this->setFlags(QGraphicsItem::ItemIsSelectable);
|
|
|
}
|
|
|
bool Base() const { return m_isBase; }
|
|
|
void Base(bool val) { m_isBase = val; }
|
|
|
bool Mark() const { return m_isMark; }
|
|
|
void Mark(bool val) { m_isMark = val; }
|
|
|
double xCoord() const { return m_xCoord; }
|
|
|
void xCoord(double val) { m_xCoord = val; }
|
|
|
double yCoord() const { return m_yCoord; }
|
|
|
void yCoord(double val) { m_yCoord = val; }
|
|
|
bool Select() const { return m_isSelect; }
|
|
|
void Select(bool val) { m_isSelect = val; }
|
|
|
|
|
|
int AreaIdX() { return m_areaIdX; }
|
|
|
void AreaIdX(int val) { m_areaIdX = val; }
|
|
|
int AreaIdY() { return m_areaIdY; }
|
|
|
void AreaIdY(int val) { m_areaIdY = val; }
|
|
|
|
|
|
double RealDieXCoord() { return m_realDieXCoord; }
|
|
|
void RealDieXCoord(double val) { m_realDieXCoord = val; }
|
|
|
double RealDieYCoord() { return m_realDieYCoord; }
|
|
|
void RealDieYCoord(double val) { m_realDieYCoord = val; }
|
|
|
bool AlreadlyMarked() { return m_isAlreadlyMarked; }
|
|
|
void AlreadlyMarked(bool val) { m_isAlreadlyMarked = val; }
|
|
|
QString SerialNum() { return m_serialNum; }
|
|
|
void SerialNum(QString val) { m_serialNum = val; }
|
|
|
bool ShowTextItem() { return m_isShowTextItem; }
|
|
|
void ShowTextItem(bool val) { m_isShowTextItem = val; }
|
|
|
protected:
|
|
|
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
|
|
//virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
|
|
|
|
|
|
|
|
|
public:
|
|
|
void ShowTextItemFunc();
|
|
|
|
|
|
signals:
|
|
|
void signal_select(double xCoord, double yCoord);
|
|
|
|
|
|
private:
|
|
|
bool m_isBase;
|
|
|
bool m_isMark;
|
|
|
bool m_isSelect = false;
|
|
|
double m_xCoord; //场景视图坐标
|
|
|
double m_yCoord; //场景视图坐标
|
|
|
|
|
|
int m_areaIdX;
|
|
|
int m_areaIdY;
|
|
|
|
|
|
double m_realDieXCoord; //真实die坐标X,相当于晶圆
|
|
|
double m_realDieYCoord; //真实die坐标Y,相当于晶圆
|
|
|
|
|
|
bool m_isAlreadlyMarked = false; //die是否已经标刻
|
|
|
|
|
|
QString m_serialNum = 0; //需要标刻的序列码
|
|
|
|
|
|
QGraphicsTextItem* m_textItem = nullptr;
|
|
|
bool m_isShowTextItem = false;
|
|
|
|
|
|
public:
|
|
|
std::vector<MarkChar> m_markChar;
|
|
|
};
|