DieItem.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "DieItem.h"
  2. DieItem::DieItem(int row, int col, PICK_DIE_STATUS status, qreal size, QGraphicsItem* parent)
  3. : QGraphicsRectItem(parent), row(row), col(col), status(status) {
  4. setRect(0, 0, size, size); // 设置单元格大小
  5. setBrush(getColorByStatus(status));
  6. // 设置边框(Pen)
  7. setPen(QPen(QColor(0, 0, 0), 0.5)); // 黑色边框,宽度为0.5
  8. }
  9. void DieItem::setSelected(bool selected) {
  10. if (selected) {
  11. setPen(QPen(Qt::red, 1));
  12. setZValue(1);
  13. } else {
  14. setPen(QPen(Qt::black, 0.5)); // 未选中时恢复为黑色边框
  15. setZValue(0);
  16. }
  17. // qDebug() << "DieItem clicked: Row:" << row << "Col:" << col;
  18. }
  19. void DieItem::setLeftSelected(bool selected) {
  20. if (selected) {
  21. setPen(QPen(Qt::green, 1));
  22. setZValue(1);
  23. } else {
  24. setPen(QPen(Qt::black, 0.5)); // 未选中时恢复为黑色边框
  25. setZValue(0);
  26. }
  27. // qDebug() << "DieItem clicked: Row:" << row << "Col:" << col;
  28. }
  29. void DieItem::setRightSelected(bool selected) {
  30. if (selected) {
  31. setPen(QPen(QColor("#00F5FF"), 1));
  32. setZValue(1);
  33. } else {
  34. setPen(QPen(Qt::black, 0.5)); // 未选中时恢复为黑色边框
  35. setZValue(0);
  36. }
  37. // qDebug() << "DieItem clicked: Row:" << row << "Col:" << col;
  38. }
  39. QColor DieItem::getColorByStatus(PICK_DIE_STATUS status) {
  40. switch (status) {
  41. case DIE_EXIST: return QColor(0, 102, 255); // 蓝色
  42. case NO_EXIST: return QColor(200, 200, 200); // 浅灰
  43. case PICK_ING: return QColor(255, 255, 0); // 黄色
  44. case SKIP_DIE: return QColor(128, 128, 128); // 深灰
  45. case EDGE_DIE: return QColor(255, 165, 0); // 橙色
  46. default: return QColor(0, 0, 0);
  47. }
  48. }
  49. int DieItem::getRow() const {
  50. return row;
  51. }
  52. int DieItem::getCol() const {
  53. return col;
  54. }