123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #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;
- }
- int DieItem::getMatrixId() const {
- return matrixId;
- }
- int DieItem::getDieIndex() const {
- return dieIndex;
- }
- 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);
- row = m_info.nDieRow;
- col = m_info.nDieCol;
- matrixId = m_info.nDieMatrixId;
- dieIndex = m_info.iDieIndex;
- }
- void DieItem::hoverEnterEvent(QGraphicsSceneHoverEvent*) {
- setZValue(1); // 悬停时提升Z值
- update();
- }
- void DieItem::hoverLeaveEvent(QGraphicsSceneHoverEvent*) {
- setZValue(0);
- update();
- }
|