#include "DieItem.h" void DieItem::setSelected(bool selected) { if (selected) { setPen(QPen(Qt::red, 1)); setZValue(1); } else { setPen(QPen(Qt::black, 0.5)); // 未选中时恢复为黑色边框 setZValue(0); } // qDebug() << "DieItem clicked: Row:" << row << "Col:" << col; } void DieItem::setLeftSelected(bool selected) { if (selected) { setPen(QPen(Qt::green, 1)); setZValue(1); } else { setPen(QPen(Qt::black, 0.5)); // 未选中时恢复为黑色边框 setZValue(0); } // qDebug() << "DieItem clicked: Row:" << row << "Col:" << col; } void DieItem::setRightSelected(bool selected) { if (selected) { setPen(QPen(QColor("#00F5FF"), 1)); setZValue(1); } else { setPen(QPen(Qt::black, 0.5)); // 未选中时恢复为黑色边框 setZValue(0); } // qDebug() << "DieItem clicked: Row:" << row << "Col:" << col; } QColor DieItem::getColorByStatus(ns_mat::PICK_DIE_STATUS status) { switch (status) { case ns_mat::PICK_DIE_STATUS::DIE_EXIST: return QColor(0, 102, 255); // 蓝色 case ns_mat::PICK_DIE_STATUS::NO_EXIST: return QColor(200, 200, 200); // 浅灰 case ns_mat::PICK_DIE_STATUS::PICK_ING: return QColor(255, 255, 0); // 黄色 case ns_mat::PICK_DIE_STATUS::SKIP_DIE: return QColor(128, 128, 128); // 深灰 case ns_mat::PICK_DIE_STATUS::EDGE_DIE: return QColor(255, 165, 0); // 橙色 default: return QColor(0, 0, 0); } } int DieItem::getRow() const { return row; } int DieItem::getCol() const { return col; } void DieItem::updateAppearance() { // 根据状态设置颜色 QColor fillColor; if (m_info.bDisable) { fillColor = Qt::darkGray; } else { switch (m_info.eStatus) { case ns_mat::PICK_DIE_STATUS::DIE_EXIST: fillColor = Qt::green; break; //绿色 case ns_mat::PICK_DIE_STATUS::NO_EXIST: fillColor = QColor(200, 200, 200); break;// 浅灰 case ns_mat::PICK_DIE_STATUS::PICK_ING : fillColor = QColor(255, 255, 0);// 黄色 case ns_mat::PICK_DIE_STATUS::SKIP_DIE : fillColor = QColor(128, 128, 128); // 深灰 case ns_mat::PICK_DIE_STATUS::EDGE_DIE: fillColor = QColor(255, 165, 0); // 橙色 default: fillColor = Qt::gray; break; } } setPen(QPen(Qt::black, 1)); setBrush(fillColor); } void DieItem::hoverEnterEvent(QGraphicsSceneHoverEvent*) { setZValue(1); // 悬停时提升Z值 update(); } void DieItem::hoverLeaveEvent(QGraphicsSceneHoverEvent*) { setZValue(0); update(); }