HSV调色盘

int h;H值

void ColorSVwidget::paintEvent(QPaintEvent *e)//画圈 颜色画布上
{

    //横 s
    auto sColor = QColor::fromHsvF(h, 1.0, 1.0);

    QPainter painter(this);
    QLinearGradient svGradient(0, 0, this->width(), 0);
    svGradient.setColorAt(0, QColor::fromRgbF(1.0, 1.0, 1.0));
    svGradient.setColorAt(1, sColor);

    //竖 v
    QLinearGradient vGradient(0, 0, 0, 255);
    vGradient.setColorAt(0, QColor(0, 0, 0, this->height()));
    vGradient.setColorAt(1, QColor(0, 0, 0, 0));

    auto r = rect();
    painter.fillRect(r, svGradient);
    painter.fillRect(r, vGradient);

    painter.setPen(QColor::fromHsvF(abs(0.5 - h), 1, 1));//圈颜色与底色区别开
    painter.drawEllipse(pt, 4.0, 4.0);//pt 圈的位置
}

右侧滑块就是一般QSlider  自己改样式就行 取值0-360

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值