ColorButton.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "pch.h"
  2. #include "ColorButton.h"
  3. #include <QColorDialog>
  4. #include <QPixmap>
  5. ColorButton::ColorButton(QWidget *parent, QColor color)
  6. : QPushButton(parent), color(color)
  7. {
  8. //setText("Set Color");
  9. //setContentsMargins(0, 0, 0, 0);
  10. //this->setStyleSheet(this->styleSheet() + "border: 1px solid white; background-color: red");
  11. updateVisual();
  12. setToolTip("Set Color");
  13. connect(this, &QPushButton::pressed, this, &ColorButton::openColorMenu);
  14. }
  15. ColorButton::~ColorButton()
  16. {
  17. }
  18. QColor ColorButton::getColor()
  19. {
  20. return color;
  21. }
  22. void ColorButton::updateVisual()
  23. {
  24. QPixmap pixmap(100, 14);
  25. pixmap.fill(color);
  26. QIcon redIcon(pixmap);
  27. setIcon(QIcon(redIcon));
  28. setIconSize(QSize(100, 14));
  29. }
  30. void ColorButton::resizeEvent(QResizeEvent* event)
  31. {
  32. }
  33. void ColorButton::openColorMenu()
  34. {
  35. QColor color = QColorDialog::getColor(this->color, this, "Set Color", QColorDialog::ShowAlphaChannel);
  36. if (!color.isValid()) return;
  37. this->color = color;
  38. updateVisual();
  39. emit colorChanged(this->color);
  40. }
  41. void ColorButton::setColor(QColor color)
  42. {
  43. this->color = color;
  44. updateVisual();
  45. }