You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
2.4 KiB
C++

#include "DieCharLayoutUI.h"
DieCharLayoutUI::DieCharLayoutUI(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
connect(ui.pushButton_closeDieCharLayout, SIGNAL(clicked()), this, SLOT(slot_closeDieCharLayout()));
}
DieCharLayoutUI::~DieCharLayoutUI()
{
}
void DieCharLayoutUI::ShowDieCharLayoutUIUseRecipe(RecipeAttrObj& curUseRecipe, QString replaceStr)
{
for (auto& iter : m_textItemVec)
{
m_scene.removeItem(iter.get());
}
m_textItemVec.clear();
m_dieWidth = curUseRecipe.m_dieWidth;
m_dieHeight = curUseRecipe.m_dieHeight;
//<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());
//<2F><><EFBFBD>ƹ̶<C6B9><CCB6>ַ<EFBFBD>
for (auto& iter : curUseRecipe.m_markCharVec)
{
/*for (int i = 0; i < replaceStr.size(); ++i) {
if (i == iter.charId)
{*/
//QString oneInputStr(replaceStr.at(iter->data()));
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(CUR_SELECT_DIE);
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, 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.graphicsView_showDieCharLayout->setScene(&m_scene);
}
void DieCharLayoutUI::slot_closeDieCharLayout()
{
this->hide();
}