colorwidget.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "colorwidget.h"
  2. #include "ui_colorwidget.h"
  3. ColorWidget::ColorWidget(QWidget* parent)
  4. : QWidget(parent)
  5. , ui(new Ui::ColorWidget)
  6. {
  7. ui->setupUi(this);
  8. }
  9. ColorWidget::~ColorWidget()
  10. {
  11. delete ui;
  12. }
  13. void ColorWidget::setColor(QColor color)
  14. {
  15. m_color = color;
  16. update();
  17. }
  18. QColor& ColorWidget::color()
  19. {
  20. return m_color;
  21. }
  22. void ColorWidget::paintEvent(QPaintEvent* event)
  23. {
  24. QPainter painter;
  25. painter.begin(this);
  26. QRect rc;
  27. rc.setRect(1, 1, width() - 2, height() - 2);
  28. QPen pen;
  29. QColor c = hasFocus() == true ? QColor(117, 117, 117) : QColor(223, 223, 223);
  30. pen.setColor(c);
  31. painter.setPen(pen);
  32. painter.drawRect(rc);
  33. rc.setRect(2, 2, width() - 4, height() - 4);
  34. painter.fillRect(rc, QBrush(m_color));
  35. painter.end();
  36. }
  37. void ColorWidget::focusInEvent(QFocusEvent* event)
  38. {
  39. update();
  40. }
  41. void ColorWidget::focusOutEvent(QFocusEvent* event)
  42. {
  43. update();
  44. }
  45. void ColorWidget::mousePressEvent(QMouseEvent* event)
  46. {
  47. setFocus();
  48. emit onClick(m_index, m_color);
  49. update();
  50. }
  51. void ColorWidget::setIndex(int index)
  52. {
  53. m_index = index;
  54. }