//for starf study
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QRgba64>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QColor>
#include<QRgba64>
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;
}
QColor方法功能(QT5.12)
最新推荐文章于 2025-03-25 20:54:56 发布