QColor方法功能(QT5.12)


//for starf study

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include

#include


#include "mainwindow.h"
#include "ui_mainwindow.h"

#include

#include
#include


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    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类型创建一个更加精细的颜色
    //其他参数的构造函数一般不使用
    qDebug()<<crD.alpha()<<crD.alphaF();  //获取颜色的alpha分量
    qDebug()<<crD.black()<<crD.blackF();  //获取颜色的黑色分量
    qDebug()<<crD.blue()<<crD.blueF();  //获取颜色的蓝色分量
    qDebug()<<crD.cyan()<<crD.cyanF(); //获取颜色的青色分量
    qDebug()<<crD.green()<<crD.greenF(); //获取颜色的绿色分量
    qDebug()<<crD.red()<<crD.redF(); //获取颜色的红色分量
    qDebug()<<crD.yellow()<<crD.yellowF(); //获取颜色的红色分量
    qDebug()<<crD.hslHue()<<crD.hslHueF(); //获取颜色的色相分量(hsl)
    qDebug()<<crD.hslSaturation()<<crD.hslSaturationF(); //获取颜色的饱和度分量(hsl)
    qDebug()<<crD.hsvHue()<<crD.hsvHueF(); //获取颜色的色相分量(hsv)
    qDebug()<<crD.hsvSaturation()<<crD.hsvSaturationF(); //获取颜色的饱和度分量(hsv)
    qDebug()<<crD.value()<<crD.valueF(); //获取颜色的明度分量(hsv)
    qDebug()<<crD.hue()<<crD.hueF(); //同crD.hsvHue()  和  crD.hsvHueF()
    qDebug()<<crD.saturation()<<crD.saturationF(); //同crD.hsvSaturation()  和  crD.hsvSaturationF()
    qDebug()<<crD.lightness()<<crD.lightnessF(); //返回颜色的亮度分量
    qDebug()<<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(); //将颜色调明亮以后 返回新的颜色 不改变旧颜色
    qDebug()<<crD<<Darkcr<<Lightcr;

    int c,m,y,k;
    crD.getCmyk(&c,&m,&y,&k); //将颜色转化为cmyk模式,然后获取四种颜色的配比
    qDebug()<<c<<m<<y<<k;      // void QColor::getCmykF(qreal *c, qreal *m, qreal *y, qreal *k, qreal *a = nullptr) 可以获取更精确的值
    int h,s,l;
    crD.getHsl(&h,&s,&l); //将颜色转化为hsl模式,然后获取三种属性的值
                                      //void QColor::getHslF(qreal *h, qreal *s, qreal *l, qreal *a = nullptr) const 可以获取更加精确的值
    int v;
    crD.getHsv(&h,&s,&v); //将颜色转化为hsv模式,然后获取三种属性的值
                                        //void QColor::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可以不写
                                             //void QColor::getRgbF(qreal *r, qreal *g, qreal *b, qreal *a = nullptr) const 可以获取更精确的值

    qDebug()<<crD.isValid(); //返回颜色是否有效
    qDebug()<<crD.isValidColor("red");  //如果名称是可以被识别的有效的颜色字符串,则返回true
                                                            //如果返回true 那么这个字符串名称就可以作为QColor的参数构造一个颜色对象
                                                            //如,此时返回true,则可以:QColor crE = QColor("red");
    qDebug()<<crD.name(); //以“#RRGGBB”格式返回颜色的名称;
        //可以填写参数,填写:
        //QColor::HexRgb  QColor::HexArgb,后者的返回格式中 以#AARRGGBB 返回颜色名称

    qDebug()<<crD.rgb();  //返回颜色的argb值  格式为#AARRGGBB的ARGB四元组   uint32
    QRgba64 rv = crD.rgba64();       //返回颜色QRgba64的对象
    qDebug()<<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值设定为指定值


    qDebug()<<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模式色彩
}

MainWindow::~MainWindow()
{
    delete ui;
}


你可能感兴趣的:(QT,QT基础控件,qt5,c++,qt)