#include "colorpicker.h" #include #include ColorPicker::ColorPicker(QWidget *parent) : QWidget(parent), m_colorAreaSize(18) { setMouseTracking(true); double radius = (colorList.size()*m_colorAreaSize/1.3)/(3.141592); resize(radius*2 + m_colorAreaSize, radius*2 + m_colorAreaSize); double degree = 360 / (colorList.size()); double degreeAcum = degree; QLineF baseLine = QLineF(QPoint(radius, radius), QPoint(radius*2, radius)); for (int i = 0; i rects = handleMask(); painter.setPen(QColor(Qt::black)); for(int i = 0; i < rects.size(); ++i) { painter.setBrush(QColor(colorList.at(i))); painter.drawRoundRect(rects.at(i), 100, 100); } } QVector ColorPicker::handleMask() const { QVector areas; for(QRect rect: m_colorAreaList) { areas.append(rect); } return areas; } QVector ColorPicker::colorList = { Qt::darkRed, Qt::red, Qt::yellow, Qt::green, Qt::darkGreen, Qt::darkCyan, Qt::blue, Qt::cyan, Qt::magenta, Qt::darkMagenta };