#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; //绘制坐标系 m_XCoordAxis = std::make_shared(-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(0, -m_dieHeight * DIE_SCALE - 100, 0, m_dieHeight * DIE_SCALE + 100); m_YCoordAxis->setPen(m_pen); m_YCoordAxis->CoordAxis(true); //绘制die m_dieObj = std::make_shared(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()); //绘制固定字符 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 textObj = std::make_shared(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字体大概等于400宽度 QFont font("Arial", textObj->charHeight * DIE_SCALE, QFont::Bold); // 字体名称,大小,粗细 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(); }