|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
#include <memory>
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <cmath>
|
|
|
|
|
#include <QMouseEvent>
|
|
|
|
|
#include <QRectF>
|
|
|
|
|
#include <QStringListModel>
|
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
#include <QRegExpValidator>
|
|
|
|
|
#include <QRegExp>
|
|
|
|
|
#include "ui_DieUI.h"
|
|
|
|
|
#include "global.h"
|
|
|
|
|
#include "mappingchart_global.h"
|
|
|
|
|
#include "MyQGraphicsLineItem.h"
|
|
|
|
|
#include "MyQGraphicsRectItem.h"
|
|
|
|
|
#include "MyDieRectItem.h"
|
|
|
|
|
#include "MyDrawRectItem.h"
|
|
|
|
|
#include "MyQGraphicsEllipseItem.h"
|
|
|
|
|
#include "MyQGraphicsTextItem.h"
|
|
|
|
|
|
|
|
|
|
class MAPPINGCHART_EXPORT DieUI : public QWidget
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
typedef enum DrawTypeEnum {
|
|
|
|
|
NONE,
|
|
|
|
|
LINE,
|
|
|
|
|
RECT,
|
|
|
|
|
CIRCLE,
|
|
|
|
|
TEXT
|
|
|
|
|
}DrawTypeEnum;
|
|
|
|
|
public:
|
|
|
|
|
DieUI(QWidget *parent = Q_NULLPTR);
|
|
|
|
|
~DieUI();
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
void signal_charEditEnd();
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
void slot_setDrawLineFlag();
|
|
|
|
|
void slot_setDrawRectFlag();
|
|
|
|
|
void slot_setCircleFlag();
|
|
|
|
|
void slot_setTextFlag();
|
|
|
|
|
void slot_setDrawNone();
|
|
|
|
|
void slot_dealMouseEvent(QPointF p1, QPointF p2);
|
|
|
|
|
void slot_dealSelect(int id);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>die<69><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>
|
|
|
|
|
void slot_setLineCoord();
|
|
|
|
|
void slot_setRectCoord();
|
|
|
|
|
void slot_setCircle();
|
|
|
|
|
|
|
|
|
|
void slot_addText();
|
|
|
|
|
void slot_deleteText();
|
|
|
|
|
|
|
|
|
|
void slot_sendEditEnd();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
void InitDieUI(double dieWidth, double dieHeight, QStringList& allFontList);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void AddLine(double x1, double y1, double x2, double y2);
|
|
|
|
|
void AddRect(double x1, double y1, double x2, double y2);
|
|
|
|
|
void AddCircle(double x1, double y1, double x2, double y2);
|
|
|
|
|
void AddText(double x1, double y1);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Ui::DieUI ui;
|
|
|
|
|
QGraphicsScene m_scene;
|
|
|
|
|
std::vector<std::shared_ptr<MyQGraphicsLineItem>> m_lineItemVec;
|
|
|
|
|
std::vector<std::shared_ptr<MyDrawRectItem>> m_rectItemVec;
|
|
|
|
|
std::vector<std::shared_ptr<MyQGraphicsEllipseItem>> m_circleItemVec;
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsLineItem> m_XCoordAxis; //<2F><><EFBFBD><EFBFBD>ϵX<CFB5><58>
|
|
|
|
|
std::shared_ptr<MyQGraphicsLineItem> m_YCoordAxis; //<2F><><EFBFBD><EFBFBD>ϵY<CFB5><59>
|
|
|
|
|
std::shared_ptr<MyDieRectItem> m_dieObj;
|
|
|
|
|
QPen m_pen;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
QPointF m_startPos;
|
|
|
|
|
|
|
|
|
|
DrawTypeEnum m_drawType;
|
|
|
|
|
|
|
|
|
|
int m_curSelectId = -1; //<2F><>ǰѡ<C7B0>е<EFBFBD>item
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
//die<69><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
double m_dieWidth = 3;
|
|
|
|
|
double m_dieHeight = 4;
|
|
|
|
|
QStringList m_allFontList;
|
|
|
|
|
std::string m_curFontType;
|
|
|
|
|
std::vector<std::shared_ptr<MyQGraphicsTextItem>> m_textItemVec;
|
|
|
|
|
};
|