QColor相关方法

QColor相关方法
共勉
#include<QRgba64>
#include<QColor>
#include<QRgba64>

QColor crA = QColor(255,0,0,125); //用RGBA参数精准创建颜色对象 a代表颜色透明度 范围是 0-255
QColor crB = QColor(Qt::darkGreen); //使用系统自带的一些颜色可以快速初始化一个颜色对象
QColor crC = QColor(0xff0000ff); //通过ARGB数值精准创建一个颜色
QRgba64 cl = QRgba64();
cl.setRed(65535);
cl.setGreen(00);
cl.setBlue(00);
cl.setAlpha(65535);
QColor crD = QColor(cl); //用QRgba64类型创建一个更加精细的颜色
//其他参数的构造函数一般不使用
crD.alpha()			crD.alphaF();  //获取颜色的alpha分量
crD.black()			crD.blackF();  //获取颜色的黑色分量
crD.blue()			crD.blueF();  //获取颜色的蓝色分量
crD.cyan()			crD.cyanF(); //获取颜色的青色分量
crD.green()			crD.greenF(); //获取颜色的绿色分量
crD.red()			crD.redF(); //获取颜色的红色分量
crD.yellow()		crD.yellowF(); //获取颜色的红色分量
crD.hslHue()		crD.hslHueF(); //获取颜色的色相分量(hsl)
crD.hslSaturation()	crD.hslSaturationF(); //获取颜色的饱和度分量(hsl)
crD.hsvHue()		crD.hsvHueF(); //获取颜色的色相分量(hsv)
crD.hsvSaturation()	crD.hsvSaturationF(); //获取颜色的饱和度分量(hsv)
crD.value()			crD.valueF(); //获取颜色的明度分量(hsv)
crD.hue()			crD.hueF(); //同crD.hsvHue()  和  crD.hsvHueF()
crD.saturation()	crD.saturationF(); //同crD.hsvSaturation()  和  crD.hsvSaturationF()
crD.lightness()		crD.lightnessF(); //返回颜色的亮度分量
crD.magenta()		crD.magentaF(); // 返回颜色的洋红分量(cmyk)

QColor cpCr = crD.convertTo(QColor::Rgb); //以指定格式状态颜色的副本
//QColor::Rgb(1)   Rgb样式      一般网络图片样式
//QColor::Hsv  (2)  Hsv样式       色彩圆锥模型样式  HSV即色相(Hue)、饱和度(Saturation)、明度(Value)
//QColor::Cmyk (3) Cmyk样式    印刷体模式
//QColor::Hsl(4)    Hsl样式        HSL表示色相(Hue)、饱和度(Saturation)、亮度(Lightness)

QColor Darkcr = crD.darker();  //将颜色调暗淡以后 返回新的颜色 不改变旧颜色
QColor Lightcr = crD.lighter(); //将颜色调明亮以后 返回新的颜色 不改变旧颜色

int c,m,y,k;
crD.getCmyk(&c,&m,&y,&k); //将颜色转化为cmyk模式,然后获取四种颜色的配比
getCmykF(qreal *c, qreal *m, qreal *y, qreal *k, qreal *a = nullptr) //可以获取更精确的值
int h,s,l;
crD.getHsl(&h,&s,&l); //将颜色转化为hsl模式,然后获取三种属性的值
getHslF(qreal *h, qreal *s, qreal *l, qreal *a = nullptr) const //可以获取更加精确的值
int v;
crD.getHsv(&h,&s,&v); //将颜色转化为hsv模式,然后获取三种属性的值
getHslF(qreal *h, qreal *s, qreal *v qreal *a = nullptr) const //可以获取更加精确的值
int r,g,b,a;
crD.getRgb(&r,&g,&b,&a); //将颜色转化为rgba格式,然后获取三种颜色的值和alpha的值,a可以不写
getRgbF(qreal *r, qreal *g, qreal *b, qreal *a = nullptr) const //可以获取更精确的值

crD.isValid(); //返回颜色是否有效
crD.isValidColor("red");  //如果名称是可以被识别的有效的颜色字符串,则返回true
                          //如果返回true 那么这个字符串名称就可以作为QColor的参数构造一个颜色对象
                          //如,此时返回true,则可以:QColor crE = QColor("red");
crD.name(); //以“#RRGGBB”格式返回颜色的名称;
crD.rgb();  //返回颜色的argb值  格式为#AARRGGBB的ARGB四元组   uint32
QRgba64 rv = crD.rgba64();       //返回颜色QRgba64的对象
crD.rgba();  //返回颜色的rgba值

crD.setAlpha(255); //设置RGB色彩的Alpha值 0-255
crD.setAlphaF(0.55); //设置RGB色彩的Alpha值  0-1
crD.setBlue(125);  //设置RGB色彩的蓝色值 0-255
crD.setBlueF(0.51); //设置RGB色彩的蓝色值 0-1
crD.setGreen(125);  //设置RGB色彩的绿色值 0-255
crD.setGreenF(0.51); //设置RGB色彩的绿色值 0-1
crD.setRed(125);  //设置RGB色彩的红色值 0-255
crD.setRedF(0.51); //设置RGB色彩的红色值 0-1
crD.setCmyk(100,12,23,43); //设置CMYK模式下的四个颜色值 范围都是0-255
crD.setCmykF(0.1,0.2,0.4,0.13); //设置CMYK模式下的四个颜色值 范围都是0-1
crD.setHsl(100,12,23); //设置Hsl模式下的3个属性值 范围都是0-255
crD.setHslF(0.1,0.2,0.4); //设置Hsl模式下的3个属性值 范围都是0-1
crD.setHsv(100,12,23); //设置Hsv模式下的3个属性值 范围都是0-255
crD.setHsvF(0.1,0.2,0.4); //设置Hsv模式下的3个属性值 范围都是0-1
crD.setRgb(100,12,23); //设置RGB模式下的3个颜色值 范围都是0-255
crD.setRgbF(0.1,0.2,0.4); //设置rgb模式下的3个颜色值 范围都是0-1
crD.setRgba64(cl); //将颜色的Rgba64值设定为指定值
crD.setRgba(0xff0000ff); //将颜色的Rgba值设定为指定值
crD.spec(); //返回当前颜色的类型  类型参照convertTo 的参数
QColor crF = crD.toCmyk(); //返回crD颜色的CMYK模式色彩
QColor crG = crD.toHsl(); //返回crD颜色的HSL模式色彩
QColor crH = crD.toHsv(); //返回crD颜色的HSV模式色彩
QColor crI = crH.toHsv(); //返回crH颜色的rgb模式色彩
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘气の小狼人¹º²⁴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值