|
|
|
|
|
#include "DieUI.h"
|
|
|
|
|
|
|
|
|
|
|
|
DieUI::DieUI(QWidget *parent)
|
|
|
|
|
|
: QWidget(parent)
|
|
|
|
|
|
{
|
|
|
|
|
|
ui.setupUi(this);
|
|
|
|
|
|
|
|
|
|
|
|
//connect(ui.pushButton_autoId, SIGNAL(clicked()), this, SLOT(slot_autoId()));
|
|
|
|
|
|
|
|
|
|
|
|
//connect(ui.pushButton_addText, SIGNAL(clicked()), this, SLOT(slot_addText()));
|
|
|
|
|
|
//connect(ui.pushButton_deleteChar, SIGNAL(clicked()), this, SLOT(slot_deleteText()));
|
|
|
|
|
|
|
|
|
|
|
|
connect(ui.pushButton_addAllChar, SIGNAL(clicked()), this, SLOT(slot_addAllChar()));
|
|
|
|
|
|
connect(ui.pushButton_modifyText, SIGNAL(clicked()), this, SLOT(slot_modifyText()));
|
|
|
|
|
|
connect(ui.pushButton_cancelAllSelectChar, SIGNAL(clicked()), this, SLOT(slot_cancelAllSelectChar()));
|
|
|
|
|
|
|
|
|
|
|
|
connect(ui.pushButton_topAdjustPos, SIGNAL(clicked()), this, SLOT(slot_topAdjustPos()));
|
|
|
|
|
|
connect(ui.pushButton_downAdjustPos, SIGNAL(clicked()), this, SLOT(slot_downAdjustPos()));
|
|
|
|
|
|
connect(ui.pushButton_leftAdjustPos, SIGNAL(clicked()), this, SLOT(slot_leftAdjustPos()));
|
|
|
|
|
|
connect(ui.pushButton_rightAdjustPos, SIGNAL(clicked()), this, SLOT(slot_rightAdjustPos()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֺ<EFBFBD>С<EFBFBD><D0A1><EFBFBD>㣬<EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>㿪ͷ
|
|
|
|
|
|
QRegExp regExp("[0-9]*\\.?[0-9]+");
|
|
|
|
|
|
QValidator *validator = new QRegExpValidator(regExp, this);
|
|
|
|
|
|
ui.lineEdit_charWidth->setValidator(validator);
|
|
|
|
|
|
ui.lineEdit_charHeight->setValidator(validator);
|
|
|
|
|
|
ui.lineEdit_charX->setValidator(validator);
|
|
|
|
|
|
ui.lineEdit_charY->setValidator(validator);
|
|
|
|
|
|
|
|
|
|
|
|
QRegExp regExp3("[a-zA-Z0-9_]{1}"); //ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD>
|
|
|
|
|
|
/*ui.lineEdit_charContent->setValidator(new QRegExpValidator(regExp2, ui.lineEdit_charContent));
|
|
|
|
|
|
QValidator *validator = new QRegExpValidator(regExp3, this);*/
|
|
|
|
|
|
QValidator *validator2 = new QRegExpValidator(regExp3, this);
|
|
|
|
|
|
ui.lineEdit_charContent->setValidator(validator2);
|
|
|
|
|
|
|
|
|
|
|
|
m_pen.setColor(RECT_COLOR);
|
|
|
|
|
|
m_pen.setWidth(4);
|
|
|
|
|
|
|
|
|
|
|
|
ui.comboBox_2->clear();
|
|
|
|
|
|
QStringList resList;
|
|
|
|
|
|
resList << "0.001" << "0.005" << "0.010" << "0.020";
|
|
|
|
|
|
ui.comboBox_2->addItems(resList);
|
|
|
|
|
|
ui.comboBox_2->setCurrentIndex(2);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DieUI::~DieUI()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_dealMouseEvent(QPointF p1, QPointF p2)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_drawType == LINE)
|
|
|
|
|
|
{
|
|
|
|
|
|
//AddLine(p1.x(), p1.y(), p2.x(), p2.y());
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_drawType == RECT)
|
|
|
|
|
|
{
|
|
|
|
|
|
AddRect(p1.x(), p1.y(), p2.x(), p2.y());
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_drawType == CIRCLE)
|
|
|
|
|
|
{
|
|
|
|
|
|
//AddCircle(p1.x(), p1.y(), p2.x(), p2.y());
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (m_drawType == TEXT)
|
|
|
|
|
|
{
|
|
|
|
|
|
//AddText(p1.x(), p1.y());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_dealSelect(int id)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_curSelectId = id;
|
|
|
|
|
|
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->m_id == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
ui.lineEdit_uniqueId->setText(QString::number(iter->m_id));
|
|
|
|
|
|
//<2F><><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
|
ui.lineEdit_charContent->setText(iter->charContent);
|
|
|
|
|
|
ui.lineEdit_charX->setText(QString::number(iter->charPosX));
|
|
|
|
|
|
ui.lineEdit_charY->setText(QString::number(iter->charPosY));
|
|
|
|
|
|
ui.lineEdit_charWidth->setText(QString::number(iter->charWidth));
|
|
|
|
|
|
ui.lineEdit_charHeight->setText(QString::number(iter->charHeight));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::AddLine(int id, double x1, double y1, double x2, double y2)
|
|
|
|
|
|
{
|
|
|
|
|
|
//std::shared_ptr<MyQGraphicsLineItem> lineObj = std::make_shared<MyQGraphicsLineItem>(x1 - x1, y1 - y1, x2 - x1, y2 - y1);
|
|
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsLineItem> lineObj = std::make_shared<MyQGraphicsLineItem>();
|
|
|
|
|
|
connect(lineObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
|
|
|
|
|
|
lineObj->SetLineCoord(x1, y1, x2, y2, true);
|
|
|
|
|
|
lineObj->Id(id);
|
|
|
|
|
|
lineObj->setPen(m_pen);
|
|
|
|
|
|
|
|
|
|
|
|
m_lineItemVec.push_back(lineObj);
|
|
|
|
|
|
m_scene.addItem(lineObj.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::AddRect(double x1, double y1, double x2, double y2)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (x1 >= x2 || y1 >= y2)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
double width = abs(x2 - x1);
|
|
|
|
|
|
double height = abs(y2 - y1);
|
|
|
|
|
|
std::shared_ptr<MyDrawRectItem> RectObj = std::make_shared<MyDrawRectItem>(0, 0, width, height);
|
|
|
|
|
|
connect(RectObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
|
|
|
|
|
|
RectObj->SetDrawRectAttr(x1, y1, width, height);
|
|
|
|
|
|
RectObj->setPen(m_pen);
|
|
|
|
|
|
|
|
|
|
|
|
m_rectItemVec.push_back(RectObj);
|
|
|
|
|
|
m_scene.addItem(RectObj.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::AddCircle(int id, double x1, double y1, double diameter)
|
|
|
|
|
|
{
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsEllipseItem> ciecleObj = std::make_shared<MyQGraphicsEllipseItem>(0, 0, diameter, diameter);
|
|
|
|
|
|
connect(ciecleObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
|
|
|
|
|
|
ciecleObj->SetCircleAttr(x1, y1, diameter, diameter);
|
|
|
|
|
|
ciecleObj->Id(id);
|
|
|
|
|
|
ciecleObj->setPen(m_pen);
|
|
|
|
|
|
|
|
|
|
|
|
m_circleItemVec.push_back(ciecleObj);
|
|
|
|
|
|
m_scene.addItem(ciecleObj.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::AddText(double x1, double y1)
|
|
|
|
|
|
{
|
|
|
|
|
|
/*QString testA = "A";
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsTextItem> textObj = std::make_shared<MyQGraphicsTextItem>(testA);
|
|
|
|
|
|
connect(textObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
|
|
|
|
|
|
textObj->SetTextAttr(x1, y1);
|
|
|
|
|
|
textObj->setDefaultTextColor(RECT_COLOR);
|
|
|
|
|
|
|
|
|
|
|
|
m_textItemVec.push_back(textObj);
|
|
|
|
|
|
m_scene.addItem(textObj.get());*/
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::commonAddText(int charId)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!JudgeIdIsNormal())
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*if (!(ui.lineEdit_charWidth->text().toDouble() >= 0.08 && ui.lineEdit_charWidth->text().toDouble() <= m_dieWidth &&
|
|
|
|
|
|
ui.lineEdit_charHeight->text().toDouble() >= 0.12 && ui.lineEdit_charHeight->text().toDouble() <= m_dieHeight))
|
|
|
|
|
|
{
|
|
|
|
|
|
QMessageBox::StandardButton button = QMessageBox::information(
|
|
|
|
|
|
nullptr,
|
|
|
|
|
|
QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"),
|
|
|
|
|
|
QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָߡ<EFBFBD>0.12mm<EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><EFBFBD><EFBFBD>0.08mm<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>С<EFBFBD><EFBFBD>die<EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"),
|
|
|
|
|
|
QMessageBox::Yes,
|
|
|
|
|
|
QMessageBox::NoButton);
|
|
|
|
|
|
ui.lineEdit_charWidth->clear();
|
|
|
|
|
|
ui.lineEdit_charHeight->clear();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}*/
|
|
|
|
|
|
/*if (!(ui.lineEdit_charX->text().toDouble() >= ZERO && ui.lineEdit_charX->text().toDouble() <= m_dieWidth &&
|
|
|
|
|
|
ui.lineEdit_charY->text().toDouble() >= 0.12 && ui.lineEdit_charY->text().toDouble() <= m_dieHeight))
|
|
|
|
|
|
{
|
|
|
|
|
|
QMessageBox::StandardButton button = QMessageBox::information(
|
|
|
|
|
|
nullptr,
|
|
|
|
|
|
QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"),
|
|
|
|
|
|
QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>die<EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD>"),
|
|
|
|
|
|
QMessageBox::Yes,
|
|
|
|
|
|
QMessageBox::NoButton);
|
|
|
|
|
|
ui.lineEdit_charX->clear();
|
|
|
|
|
|
ui.lineEdit_charY->clear();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}*/
|
|
|
|
|
|
QString testA = ui.lineEdit_charContent->text();
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsTextItem> textObj = std::make_shared<MyQGraphicsTextItem>(testA);
|
|
|
|
|
|
connect(textObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
textObj->SetTextAttr(ui.lineEdit_charX->text().toDouble() * DIE_SCALE, ui.lineEdit_charY->text().toDouble() * DIE_SCALE);
|
|
|
|
|
|
textObj->setDefaultTextColor(RECT_COLOR);
|
|
|
|
|
|
|
|
|
|
|
|
textObj->m_id = charId;
|
|
|
|
|
|
textObj->charPosX = ui.lineEdit_charX->text().toDouble();
|
|
|
|
|
|
textObj->charPosY = ui.lineEdit_charY->text().toDouble()/* * (-1.0)*/;
|
|
|
|
|
|
textObj->charWidth = ui.lineEdit_charWidth->text().toDouble();
|
|
|
|
|
|
textObj->charHeight = ui.lineEdit_charHeight->text().toDouble();
|
|
|
|
|
|
textObj->charContent = testA;
|
|
|
|
|
|
|
|
|
|
|
|
//200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>400<30><30><EFBFBD><EFBFBD>
|
|
|
|
|
|
QFont font("Arial", ui.lineEdit_charHeight->text().toDouble() * DIE_SCALE / 2, QFont::Bold); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ϸ
|
|
|
|
|
|
textObj->setFont(font);
|
|
|
|
|
|
|
|
|
|
|
|
m_textItemVec.push_back(textObj);
|
|
|
|
|
|
m_scene.addItem(textObj.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool DieUI::JudgeIdIsNormal()
|
|
|
|
|
|
{
|
|
|
|
|
|
bool flag = true;
|
|
|
|
|
|
int id = ui.lineEdit_uniqueId->text().toInt();
|
|
|
|
|
|
if (ui.lineEdit_uniqueId->text().size() <= 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_lineItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_rectItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_circleItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
flag = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!flag)
|
|
|
|
|
|
{
|
|
|
|
|
|
QMessageBox::StandardButton button = QMessageBox::information(
|
|
|
|
|
|
nullptr,
|
|
|
|
|
|
QString::fromLocal8Bit("<EFBFBD><EFBFBD>ʾ"),
|
|
|
|
|
|
QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID"),
|
|
|
|
|
|
QMessageBox::Yes,
|
|
|
|
|
|
QMessageBox::NoButton);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::CommonAdjustCharPos(int flag, double dis)
|
|
|
|
|
|
{
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->m_textItemIsSelect)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (flag == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
iter->charPosY -= dis;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (flag == 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
iter->charPosY += dis;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (flag == 2)
|
|
|
|
|
|
{
|
|
|
|
|
|
iter->charPosX -= dis;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (flag == 3)
|
|
|
|
|
|
{
|
|
|
|
|
|
iter->charPosX += dis;
|
|
|
|
|
|
}
|
|
|
|
|
|
iter->SetTextAttr(iter->charPosX * DIE_SCALE, iter->charPosY * DIE_SCALE);
|
|
|
|
|
|
m_scene.update();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_addText()
|
|
|
|
|
|
{
|
|
|
|
|
|
commonAddText(ui.lineEdit_uniqueId->text().toInt());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_deleteText()
|
|
|
|
|
|
{
|
|
|
|
|
|
for (auto& iter = m_textItemVec.begin(); iter != m_textItemVec.end(); iter++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if ((*iter)->m_id == m_curSelectId)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_scene.removeItem((*iter).get());
|
|
|
|
|
|
m_textItemVec.erase(iter);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_modifyText()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ui.lineEdit_uniqueId->text().size() < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
int id = ui.lineEdit_uniqueId->text().toInt();
|
|
|
|
|
|
for (auto& iter = m_textItemVec.begin(); iter != m_textItemVec.end(); iter++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if ((*iter)->m_id == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
(*iter)->charPosX = ui.lineEdit_charX->text().toDouble();
|
|
|
|
|
|
(*iter)->charPosY = ui.lineEdit_charY->text().toDouble();
|
|
|
|
|
|
(*iter)->charWidth = ui.lineEdit_charWidth->text().toDouble();
|
|
|
|
|
|
(*iter)->charHeight = ui.lineEdit_charHeight->text().toDouble();
|
|
|
|
|
|
(*iter)->SetTextAttr((*iter)->charPosX * DIE_SCALE, (*iter)->charPosY * DIE_SCALE);
|
|
|
|
|
|
m_scene.update();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_addAllChar()
|
|
|
|
|
|
{
|
|
|
|
|
|
for (auto& iter = m_textItemVec.begin(); iter != m_textItemVec.end(); iter++)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_scene.removeItem((*iter).get());
|
|
|
|
|
|
}
|
|
|
|
|
|
m_textItemVec.clear();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int normalReplaceStrNum = ui.lineEdit_normalReplaceStr->text().toInt();
|
|
|
|
|
|
int serialNumSize = ui.lineEdit_serialReplaceStr->text().toInt();
|
|
|
|
|
|
|
|
|
|
|
|
int startIndex = 0;
|
|
|
|
|
|
for (char c = 'A'; c <= 'Z'; ++c) {
|
|
|
|
|
|
if (startIndex >= normalReplaceStrNum)
|
|
|
|
|
|
{
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
QString testA = QString(QChar(c));
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsTextItem> textObj = std::make_shared<MyQGraphicsTextItem>(testA);
|
|
|
|
|
|
|
|
|
|
|
|
textObj->m_id = startIndex;
|
|
|
|
|
|
textObj->charPosX = 0.5 + startIndex * 0.2;
|
|
|
|
|
|
textObj->charPosY = 0.5;
|
|
|
|
|
|
textObj->charWidth = 0.09;
|
|
|
|
|
|
textObj->charHeight = 0.12;
|
|
|
|
|
|
textObj->charContent = testA;
|
|
|
|
|
|
|
|
|
|
|
|
connect(textObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
textObj->SetTextAttr(textObj->charPosX * DIE_SCALE, textObj->charPosY * DIE_SCALE);
|
|
|
|
|
|
textObj->setDefaultTextColor(RECT_COLOR);
|
|
|
|
|
|
|
|
|
|
|
|
//200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>400<30><30><EFBFBD><EFBFBD>
|
|
|
|
|
|
QFont font("Arial", textObj->charHeight * DIE_SCALE, QFont::Bold); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ϸ
|
|
|
|
|
|
textObj->setFont(font);
|
|
|
|
|
|
|
|
|
|
|
|
m_textItemVec.push_back(textObj);
|
|
|
|
|
|
m_scene.addItem(textObj.get());
|
|
|
|
|
|
|
|
|
|
|
|
startIndex++;
|
|
|
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < serialNumSize; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
QString testA = QString::number(i);
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsTextItem> textObj = std::make_shared<MyQGraphicsTextItem>(testA);
|
|
|
|
|
|
|
|
|
|
|
|
textObj->m_id = startIndex;
|
|
|
|
|
|
textObj->charPosX = 0.5 + i * 0.2;
|
|
|
|
|
|
textObj->charPosY = 1;
|
|
|
|
|
|
textObj->charWidth = 0.09;
|
|
|
|
|
|
textObj->charHeight = 0.12;
|
|
|
|
|
|
textObj->charContent = testA;
|
|
|
|
|
|
|
|
|
|
|
|
connect(textObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
textObj->SetTextAttr(textObj->charPosX * DIE_SCALE, textObj->charPosY * DIE_SCALE);
|
|
|
|
|
|
textObj->setDefaultTextColor(RECT_COLOR);
|
|
|
|
|
|
|
|
|
|
|
|
//200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>400<30><30><EFBFBD><EFBFBD>
|
|
|
|
|
|
QFont font("Arial", textObj->charHeight * DIE_SCALE, QFont::Bold); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ϸ
|
|
|
|
|
|
textObj->setFont(font);
|
|
|
|
|
|
|
|
|
|
|
|
m_textItemVec.push_back(textObj);
|
|
|
|
|
|
m_scene.addItem(textObj.get());
|
|
|
|
|
|
|
|
|
|
|
|
startIndex++;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_cancelAllSelectChar()
|
|
|
|
|
|
{
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
iter->m_textItemIsSelect = false;
|
|
|
|
|
|
iter->setDefaultTextColor(RECT_COLOR);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_topAdjustPos()
|
|
|
|
|
|
{
|
|
|
|
|
|
CommonAdjustCharPos(0, ui.comboBox_2->currentText().toDouble());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_downAdjustPos()
|
|
|
|
|
|
{
|
|
|
|
|
|
CommonAdjustCharPos(1, ui.comboBox_2->currentText().toDouble());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_leftAdjustPos()
|
|
|
|
|
|
{
|
|
|
|
|
|
CommonAdjustCharPos(2, ui.comboBox_2->currentText().toDouble());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_rightAdjustPos()
|
|
|
|
|
|
{
|
|
|
|
|
|
CommonAdjustCharPos(3, ui.comboBox_2->currentText().toDouble());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::slot_autoId()
|
|
|
|
|
|
{
|
|
|
|
|
|
int uniqueId = -1;
|
|
|
|
|
|
for (int id = 0; id < 1000; id++)
|
|
|
|
|
|
{
|
|
|
|
|
|
bool idIsUse = false;
|
|
|
|
|
|
for (auto& iter : m_lineItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
idIsUse = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_rectItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
idIsUse = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_circleItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
idIsUse = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter->Id() == id)
|
|
|
|
|
|
{
|
|
|
|
|
|
idIsUse = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!idIsUse)
|
|
|
|
|
|
{
|
|
|
|
|
|
uniqueId = id;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ui.lineEdit_uniqueId->setText(QString::number(uniqueId));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::ShowDieCoordLayout(double dieWidth, double dieHeight, QStringList& allFontList, QString recipeFileCurFont)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_dieWidth = dieWidth;
|
|
|
|
|
|
m_dieHeight = dieHeight;
|
|
|
|
|
|
m_allFontList = allFontList;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ
|
|
|
|
|
|
m_XCoordAxis = std::make_shared<MyQGraphicsLineItem>(-m_dieWidth * DIE_SCALE - 100, 0, m_dieWidth * DIE_SCALE + 100, 0);
|
|
|
|
|
|
m_XCoordAxis->setPen(m_pen);
|
|
|
|
|
|
m_XCoordAxis->CoordAxis(true);
|
|
|
|
|
|
m_YCoordAxis = std::make_shared<MyQGraphicsLineItem>(0, -m_dieHeight * DIE_SCALE - 100, 0, m_dieHeight * DIE_SCALE + 100);
|
|
|
|
|
|
m_YCoordAxis->setPen(m_pen);
|
|
|
|
|
|
m_YCoordAxis->CoordAxis(true);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>die
|
|
|
|
|
|
m_dieObj = std::make_shared<MyDieRectItem>(0, 0, m_dieWidth * DIE_SCALE, m_dieHeight * DIE_SCALE);
|
|
|
|
|
|
m_dieObj->setPen(m_pen);
|
|
|
|
|
|
connect(m_dieObj.get(), SIGNAL(signal_mouse(QPointF, QPointF)), this, SLOT(slot_dealMouseEvent(QPointF, QPointF)));
|
|
|
|
|
|
|
|
|
|
|
|
m_scene.addItem(m_XCoordAxis.get());
|
|
|
|
|
|
m_scene.addItem(m_YCoordAxis.get());
|
|
|
|
|
|
m_scene.addItem(m_dieObj.get());
|
|
|
|
|
|
|
|
|
|
|
|
ui.graphicsView->setScene(&m_scene);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
QStringListModel *model = new QStringListModel();
|
|
|
|
|
|
model->setStringList(m_allFontList);
|
|
|
|
|
|
ui.comboBox->setModel(model);
|
|
|
|
|
|
ui.comboBox->setCurrentIndex(0);
|
|
|
|
|
|
for (auto& iter : m_allFontList)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (iter == recipeFileCurFont)
|
|
|
|
|
|
{
|
|
|
|
|
|
ui.comboBox->setCurrentText(recipeFileCurFont);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool DieUI::SetRecipeDie(RecipeAttrObj& obj)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_textItemVec.size() <= 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
obj.m_fontType = ui.comboBox->currentText();
|
|
|
|
|
|
obj.m_markCharVec.clear();
|
|
|
|
|
|
obj.m_markGraphicsVec.clear();
|
|
|
|
|
|
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
MarkChar resMarkChar;
|
|
|
|
|
|
resMarkChar.charId = iter->m_id;
|
|
|
|
|
|
resMarkChar.charData = iter->charContent.toStdString();
|
|
|
|
|
|
resMarkChar.x = iter->charPosX;
|
|
|
|
|
|
resMarkChar.y = iter->charPosY;
|
|
|
|
|
|
resMarkChar.charWidth = iter->charWidth;
|
|
|
|
|
|
resMarkChar.charHeight = iter->charHeight;
|
|
|
|
|
|
obj.m_markCharVec.push_back(resMarkChar);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ֵ
|
|
|
|
|
|
obj.m_serialStartStr.clear();
|
|
|
|
|
|
for (int i = 0; i < ui.lineEdit_serialReplaceStr->text().toInt(); i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
obj.m_serialStartStr.append(QString::number(0));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::ShowRecipeAllCharOnDie(RecipeAttrObj& obj, QStringList allFontType)
|
|
|
|
|
|
{
|
|
|
|
|
|
ShowDieCoordLayout(obj.m_dieWidth, obj.m_dieHeight, allFontType, obj.m_fontType);
|
|
|
|
|
|
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_scene.removeItem(iter.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
m_textItemVec.clear();
|
|
|
|
|
|
|
|
|
|
|
|
for (auto& iter : obj.m_markCharVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
QString testA = QString::fromStdString(iter.charData);
|
|
|
|
|
|
std::shared_ptr<MyQGraphicsTextItem> textObj = std::make_shared<MyQGraphicsTextItem>(testA);
|
|
|
|
|
|
connect(textObj.get(), SIGNAL(signal_select(int)), this, SLOT(slot_dealSelect(int)));
|
|
|
|
|
|
textObj->SetTextAttr(iter.x * DIE_SCALE, iter.y * DIE_SCALE/* * (-1)*/);
|
|
|
|
|
|
textObj->setDefaultTextColor(RECT_COLOR);
|
|
|
|
|
|
|
|
|
|
|
|
textObj->m_id = iter.charId;
|
|
|
|
|
|
textObj->charPosX = iter.x;
|
|
|
|
|
|
textObj->charPosY = iter.y;
|
|
|
|
|
|
textObj->charWidth = iter.charWidth;
|
|
|
|
|
|
textObj->charHeight = iter.charHeight;
|
|
|
|
|
|
textObj->charContent = testA;
|
|
|
|
|
|
|
|
|
|
|
|
//200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD>400<30><30><EFBFBD><EFBFBD>
|
|
|
|
|
|
QFont font("Arial", textObj->charHeight * DIE_SCALE/* / 2*/, QFont::Bold); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ϸ
|
|
|
|
|
|
textObj->setFont(font);
|
|
|
|
|
|
|
|
|
|
|
|
m_textItemVec.push_back(textObj);
|
|
|
|
|
|
m_scene.addItem(textObj.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ui.lineEdit_normalReplaceStr->setText(QString::number(obj.m_markCharVec.size() - obj.m_serialStartStr.size()));
|
|
|
|
|
|
ui.lineEdit_serialReplaceStr->setText(QString::number(obj.m_serialStartStr.size()));
|
|
|
|
|
|
|
|
|
|
|
|
ui.graphicsView->update();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void DieUI::ClearUIDie()
|
|
|
|
|
|
{
|
|
|
|
|
|
for (auto& iter : m_textItemVec)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_scene.removeItem(iter.get());
|
|
|
|
|
|
}
|
|
|
|
|
|
m_textItemVec.clear();
|
|
|
|
|
|
|
|
|
|
|
|
ui.lineEdit_uniqueId->clear();
|
|
|
|
|
|
ui.lineEdit_charContent->clear();
|
|
|
|
|
|
ui.lineEdit_charX->clear();
|
|
|
|
|
|
ui.lineEdit_charY->clear();
|
|
|
|
|
|
ui.lineEdit_charWidth->clear();
|
|
|
|
|
|
ui.lineEdit_charHeight->clear();
|
|
|
|
|
|
}
|
|
|
|
|
|
|