QT::QColor

QT或VS2015报错:Error: C2661: QColor::ct::ct: 没有重载函数接受 5 个参数解决方案 vs2015配置qt5.14出问题解决方案 阅读详情
QColor 类参考
QColor用于提供基于RGB,HSV,CMYK等组件的色彩值。
Public Types
        enum Spec { Rgb, Hsv, Cmyk, Hsl, Invalid }

公有函数:

QColor ()
          QColor ( int r, int g, int b, int a = 255 )
          QColor ( QRgb color )
          QColor ( const QString & name )
          QColor ( const char * name )
          QColor ( const QColor & color )
          QColor ( Qt::GlobalColor color )
          
          int	alpha () const
          qreal	alphaF () const
          int	black () const
          qreal	blackF () const
          int	blue () const
          qreal	blueF () const
          QColor	convertTo ( Spec colorSpec ) const
          int	cyan () const
          qreal	cyanF () const
          QColor	darker ( int factor = 200 ) const
          
          void	getCmyk ( int * c, int * m, int * y, int * k, int * a = 0 )
          void	getCmykF ( qreal * c, qreal * m, qreal * y, qreal * k, qreal * a = 0 )
          void	getHsl ( int * h, int * s, int * l, int * a = 0 ) const
          void	getHslF ( qreal * h, qreal * s, qreal * l, qreal * a = 0 ) const
          void	getHsv ( int * h, int * s, int * v, int * a = 0 ) const
          void	getHsvF ( qreal * h, qreal * s, qreal * v, qreal * a = 0 ) const
          void	getRgb ( int * r, int * g, int * b, int * a = 0 ) const
          void	getRgbF ( qreal * r, qreal * g, qreal * b, qreal * a = 0 ) const
          
          int	green () const
          qreal	greenF () const
          int	hslHue () const
          qreal	hslHueF () const
          int	hslSaturation () const
          qreal	hslSaturationF () const
          int	hsvHue () const
          qreal	hsvHueF () const
          int	hsvSaturation () const
          qreal	hsvSaturationF () const
          int	hue () const
          qreal	hueF () const
          bool	isValid () const
          QColor	lighter ( int factor = 150 ) const
          int	lightness () const
          qreal	lightnessF () const
          int	magenta () const
          qreal	magentaF () const
          QString	name () const
          int	red () const
          qreal	redF () const
          QRgb	rgb () const
          QRgb	rgba () const
          int	saturation () const
          qreal	saturationF () const
          
          void	setAlpha ( int alpha )
          void	setAlphaF ( qreal alpha )
          void	setBlue ( int blue )
          void	setBlueF ( qreal blue )
          void	setCmyk ( int c, int m, int y, int k, int a = 255 )
          void	setCmykF ( qreal c, qreal m, qreal y, qreal k, qreal a = 1.0 )
          void	setGreen ( int green )
          void	setGreenF ( qreal green )
          void	setHsl ( int h, int s, int l, int a = 255 )
          void	setHslF ( qreal h, qreal s, qreal l, qreal a = 1.0 )
          void	setHsv ( int h, int s, int v, int a = 255 )
          void	setHsvF ( qreal h, qreal s, qreal v, qreal a = 1.0 )
          void	setNamedColor ( const QString & name )
          void	setRed ( int red )
          void	setRedF ( qreal red )
          void	setRgb ( int r, int g, int b, int a = 255 )
          void	setRgb ( QRgb rgb )
          void	setRgbF ( qreal r, qreal g, qreal b, qreal a = 1.0 )
          void	setRgba ( QRgb rgba )
          
          Spec	spec () const
          QColor	toCmyk () const
          QColor	toHsl () const
          QColor	toHsv () const
          QColor	toRgb () const
          int	value () const
          qreal	valueF () const
          int	yellow () const
          qreal	yellowF () const
          operator QVariant () const
          
          bool	operator!= ( const QColor & color ) const
          QColor &	operator= ( const QColor & color )
          QColor &	operator= ( Qt::GlobalColor color )
          bool	operator== ( const QColor & color ) const

静态公有成员函数:

 bool	allowX11ColorNames ()
          QStringList	colorNames ()
          QColor	fromCmyk ( int c, int m, int y, int k, int a = 255 )
          QColor	fromCmykF ( qreal c, qreal m, qreal y, qreal k, qreal a = 1.0 )
          QColor	fromHsl ( int h, int s, int l, int a = 255 )
          QColor	fromHslF ( qreal h, qreal s, qreal l, qreal a = 1.0 )
          QColor	fromHsv ( int h, int s, int v, int a = 255 )
          QColor	fromHsvF ( qreal h, qreal s, qreal v, qreal a = 1.0 )
          QColor	fromRgb ( QRgb rgb )
          QColor	fromRgb ( int r, int g, int b, int a = 255 )
          QColor	fromRgbF ( qreal r, qreal g, qreal b, qreal a = 1.0 )
          QColor	fromRgba ( QRgb rgba )
          bool	isValidColor ( const QString & name )
          void	setAllowX11ColorNames ( bool enabled )


相关的非成员函数:

            typedef	QRgb
            int	qAlpha ( QRgb rgba )
            int	qBlue ( QRgb rgb )
            int	qGray ( int r, int g, int b )
            int	qGray ( QRgb rgb )
            int	qGreen ( QRgb rgb )
            int	qRed ( QRgb rgb )
            QRgb	qRgb ( int r, int g, int b )
            QRgb	qRgba ( int r, int g, int b, int a )
            QDataStream &	operator<< ( QDataStream & stream, const QColor & color )
            QDataStream &	operator>> ( QDataStream & stream, QColor & color )





详细介绍:

QColor类用于提供基于RGB,HSV,CMYK等组件的色彩值。

通常情况下色彩值用一组色彩值RGB(red,green,blue:红绿蓝)构成的组件来表示,

但有时候也会用其他的色彩值组件,比如HSV(hue,saturation,value : 色调,饱和度,阀值)   
除此之外也可以用一个颜色名来指定颜色,颜色名可以是SVG 1.0颜色名中的任意一个。

比如CMYK(cyan, magenta, yellow ,black :蓝绿,紫红,黄,黑)等组件。


QColor构造函数可以根据RGB组件来初始化一种颜色,可以通过toHsv()函数创建一个HSV对象颜色,
也可以通过toCmyk()函数创建一个CMYK对象颜色 ,用这些函数可以返回指定格式的颜色,
另外静态函数fromRgb(), fromHsv(),fromCmyk()可以通过指定特定值返回需要的颜色。
或者,可以通过convertTo()函数在RGB,HSV,CMYK中进行转换,并返回需要的颜色。
或者通过 setRgb(), setHsv(), setCmyk() 修改当前颜色的格式。
函数spec()可以返回一个指定的颜色。

通过给函数setNamedColor()传递一个RGB字符串(比如"#112233")或者传递一个颜色名称(比如"blue")可以创建需要的颜色。
颜色名称必须取至于SVG color_list,name()函数可以以"#RRGGBB"的格式返回一个颜色名称,可以通过setRgb(), setHsv(), setCmyk()
设置颜色,亮色和暗色可以分别用lighter()和darker()函数获取。

函数isValid()可以判断一个给定的颜色是否有效,例如:一个RGB颜色超过了RGB组件规定的限定就被视为无效的。
出于对性能考虑,QColor通常会忽略一个无效的颜色值,基于这个考虑,isValid()函数的返回值有时是未定义的。

为了获取颜色组件可以分别调用 red(), hue(), cyan()函数,
同样,颜色组件的阀值也可以通过调用 getRgb(), getHsv(), getCmyk() 函数返回。
当使用RGB颜色模式的时候,可以通过rgb()函数返回颜色组件。

QColor有几个相关的非成员数据:QRgb是一个类型重定义的QT类型,通过把无符号整形重定义位RGB(r,g,b)三元组,
然后把RGB(r,g,b)三元组重定义位QRgb类型,同样的,也可以用一个值来指定透明标志位。
qRed(), qBlue(), qGreen()函数可以分别返回给定的RGB组件值,同时也可以通过给这三个函数指定组键值,创建或者返回一个三元组。
最后,qAlpha()函数可以通过给定的的QRgb组件返回是否该色彩值透明,qGray()函数可以计算并返回一个给定的颜色值的灰度。

QColor是一个与设备无关的类,QColormap类会自动匹配用于显示的硬件设备。关于绘制的更多信息可以参考Paint System文档。

整数,浮点小数的精度问题:
QColor支持浮点数精度,所有的颜色组件函数都配备有浮点数运算的版本。比如:qRed(), qBlue(), qGreen()函数等。
附注:在用16位整数存储颜色组件之后,这里可能会产生细微的取值精度差异,比如:函数gerRgbF()返回的值会进行四舍五入,
用这个值作为setRgbF()的参数时,就会产生不精准的取值。

QColor类中的整数类别函数中,16位整数通常取值在0~255(除了函数hue()的取值范围为0~359)。
QColor类中的浮点数类别函数中,函数可接受的浮点数范围被限定在0.0~1.0之间。


像素叠加绘制:
QColor类同样支持用像素叠加的办法来绘制轮廓或用于像素填充技术,可以通过指定透明度值来指定透明程度,
数值0表示完全透明,数值255表示不透明,例如:
 // Specify semi-transparent red
 painter.setBrush(QColor(255, 0, 0, 127));  
 painter.drawRect(0, 0, width()/2, height());
 //127代表半透明
 // Specify semi-transparent blue
 painter.setBrush(QColor(0, 0, 255, 127));
 painter.drawRect(0, 0, width(), height()/2);
 下图是上述代码段的输出:


像素叠加绘制支持windows,Mac OS X ,X11 系统平台,通过X扩展渲染实例化。
通过alpha()函数可以返回一个透明度阀值,同样通过给setAlpha()传递一个整数值可以设定一个透明度阀值,
同样当传递的是浮点数时,函数alphaF()和setAlphaF()可以实现同样的效果。 默认情况下,透明度阀值被设定为整数255.
要返回或者设置RGB颜色组件可以通过调用函数rgba()和setRgba()得以实现。

系统预定义的颜色值:
通过Qt::GlobalColor枚举序列,QColor类预定义了20中颜色,包括,黑,白,原色,次生色,以及这些颜色的灰暗度版本和灰色遮镜。
QColor类同样识别各种各样的颜色名称,静态成员汗水colorNames()可以返回一个well_known颜色名称字符串。


此外,函数 Qt::color0, Qt::color1, Qt::transparent被用于特殊途径下。
函数 Qt::color0 (0像素值) 和 Qt::color1 (非0像素值) 在绘制QT位图时可以用于指定很特殊的颜色。
Qt::color0 () 函数可以在绘制QT位图时设置某一位(BITS)为0(比如:透明,背景颜色 等)
Qt::color1()函数可以在绘制QT位图时设置某一位(BITS)为1(比如:不透明,前景色 等)
Qt::transparent()函数用于指定一个透明像素位,当用这个值进行绘制时,会在原有的基础之上运用这个属性。

HSV颜色模式:
RGB模式是面向硬件的,渲染技术比较接近于显示器的图像显示。相比之下,HSV通常用于比较适合用于呈现用户对颜色的感官体验。
比如:"稍强"“稍暗”“相反面”等相比较RGB而言用HSV更容易描述。
HSV类似于RGB由三个颜色构成的组件(或者称为三元组)
    H (hue)色调, 在彩色模式下取值范围为0~359,在单色模式下不具有任何意义。这种对颜色的描述方式更接近于人类,
    红色取值为0,绿色取值为120,蓝色取值为240.


 S (saturation)饱和度,取值范围被限定在0~255,浅灰色的饱和度接近于0,亮丽颜色的饱和度接近于255.


V (value)阀值,取值范围被限定在0~255,用于标示暗色和亮色,黑色比较接近于0,亮白色比较接近于255.


这里有一些例子:
            纯红色:H=0,S=255,V=255。  
            暗红色,稍微接近于品红色:H=350,S=255,V=180。    
            浅红色:H=0,S=50~100.
            
在单色模式下,QT对应的色调取值会返回-1,
如果你传递的色调值太大,QT会自动缩小以匹配色调值域,HUE(360~720)会当做0处理 ,HUE(540)处理成180
另外在标准HSV模式下,QT位像素叠加绘制技术提供了一个透明度阀值的属性。


HSL颜色模式:
HSL模式类似于HSV模式,于HSV不同的是,HSL有一个明暗参数,明暗参数可以再黑色和白色之间来回切换,
在夜间室外显示为灰色或者黑色,在白天如果在强光下观察则呈现五彩多姿的颜色,俗称曝光。


CMYK颜色模式:
通常RGB和HSV颜色模式被用于电脑显示器用于展示图形图像,CMYK颜色模式通常被用于应刷机或打印复制。
CMYK是由4个颜色组成的组件,四个颜色取值都被限定在0~255,: cyan (C)蓝绿色, magenta (M)紫红色, yellow (Y)黄色, black (K)黑色
他们又被称为消元色,CMYK颜色模式通常创建于一个白色的平面,然后在CMYK组件上应用消元色属性。当用cyan,magenta,yellow三中颜色
去结合black颜色时,其中一种或多种颜色会中和其他的颜色,当以不同比率组合着四种颜色时,着三中颜色会创建一个色彩光谱图实体。


混合100%比例的cyna,magenta,yellow时会中和黑色,但是用墨汁调制时这个结果并不令人满意,特别是随着晾干时间的增加,打印时颜色会很模糊。
由于这个原因,黑色是在专业打印时添加进来以起到调和颜色的作用。
另外在标准CMYK模式中,QT为像素叠加绘制提供了一个透明度阀值。


成员类型描述:
指定的颜色类型可以为RGB 或者HSV 或者CMYK 或者HSL
Constant Value
QColor::Rgb 1
QColor::Hsv 2
QColor::Cmyk 3
QColor::Hsl 4
QColor::Invalid 0

成员函数描述:
QColor::QColor ()
默认情况下用RGB(0,0,0)初始化一个无效的颜色组件对象,无效的颜色组件是指改颜色不适合用于创建窗口系统的。
透明度阀值未指定。

QColor::QColor ( int r, int g, int b, int a = 255 )
用RGB(r,g,b)初始化一个颜色组件对象,改颜色不透明。
如果给定的任何一个参数无效,则返回的颜色对象也无效

QColor::QColor ( QRgb color )
通过给定的颜色组件创建一个相对应的颜色组件对象,该颜色对象忽略透明度,而且被设置成实心类型。

QColor::QColor ( const QString & name )
通过一个给定的颜色名称,创建一个和函数setNamedColor()返回类型同等的颜色对象组件。
如果给定的颜色名称无法从color_name_list找到,则返回的颜色组件对象无效。

QColor::QColor ( const char * name )
通过一个给定的颜色名称,创建一个和函数setNamedColor()返回类型同等的颜色对象组件。
如果给定的颜色名称无法从color_name_list找到,则返回的颜色组件对象无效
该函数与上一个函数唯一的不同在于传递的参数类型不同。

QColor::QColor ( const QColor & color )
复制构造函数

QColor::QColor ( Qt::GlobalColor color )
这是一个重载的函数。通过给定的颜色值创建一个颜色组件对象。

bool QColor::allowX11ColorNames () [static]
如果给定的颜色名称可以再X11颜色数据库中找到则返回true,默认情况下,该函数返回false
附注:这个函数仅支持X11平台。

int QColor::alpha () const
以整数的形式返回该颜色组件对象(this)的透明度阀值

qreal QColor::alphaF () const
以浮点数的形式返回该颜色组件对象(this)的透明度阀值

int QColor::black () const
以整数的形式返回该颜色组件对象的黑色颜色取值。

qreal QColor::blackF () const
以浮点数的形式返回该颜色组件对象的黑色颜色取值

int QColor::blue () const
以整数的形式返回该颜色组件对象的蓝色颜色取值

qreal QColor::blueF () const
以浮点数的形式返回该颜色组件对象的蓝色颜色取值

QStringList QColor::colorNames () [static]
以字符串序列的形式返回该颜色组件对象内所包含的QT能正常解析的颜色名称

QColor QColor::convertTo ( Spec colorSpec ) const
用给定的颜色格式返回该颜色组件对象的一份拷贝

int QColor::cyan () const
以整数的形式返回该颜色组件对象的cyan颜色取值

qreal QColor::cyanF () const
以浮点数的形式返回该颜色组件对象的cyan颜色取值

QColor QColor::darker ( int factor = 200 ) const
返回该颜色组件对象的明亮程度的一个拷贝,不修改this对象
如果参数factor大于100函数返回一个暗黑颜色,把参数factor设置成300则返回一个3式渐变形式的明亮色
如果参数factor小于100,则函数返回一个比当前颜色更亮的颜色,通常推荐用函数lighter()执行此目的
如果参数factor为0或者负数值,则返回结果为定义。
该函数可以很方便的在RGB和HSV模式间进行转换,通过factor因子可以把该颜色组件的Value消除从而还原成RGB模式

QColor QColor::fromCmyk ( int c, int m, int y, int k, int a = 255 ) [static]
静态成员函数,通过给定的c (cyan), m (magenta), y (yellow), k (black), (alpha-channel or transparency).
可以很方便的创建一个CMYK模式的颜色组件对象
所有的参数值必须限定在0~255之间

QColor QColor::fromCmykF ( qreal c, qreal m, qreal y, qreal k, qreal a = 1.0 ) [static]
这是一个重载的静态成员函数
和上面一个函数唯一的不同点在于所有的参数都是以浮点数的形式给出,
因此,所有的参数值都必须限定在0.0~1.0之间。

QColor QColor::fromHsl ( int h, int s, int l, int a = 255 ) [static]
该静态成员函数可以很方便的根据给定的参数创建一个HSL颜色组件对象
附注:参数s , l , a 必须限定在0~255之间,参数 h 必须限定在0~359之间
该函数在QT4.6中有介绍

QColor QColor::fromHslF ( qreal h, qreal s, qreal l, qreal a = 1.0 ) [static]
这是一个重载的静态成员函数
和上面有一个函数唯一的不同点在于,所有的参数均是浮点数,所以
所有的参数值必须限定在0.0~1.0之间

QColor QColor::fromHsv ( int h, int s, int v, int a = 255 ) [static]
该静态成员函数可以根据给定的参数值返回一个HSV模式的颜色组件对象
附注:参数 s, v, a 必须限定在0~255之间,参数h必须限定在0~359之间

QColor QColor::fromHsvF ( qreal h, qreal s, qreal v, qreal a = 1.0 ) [static]
这是一个重载的静态成员函数
和上面一个函数唯一不同点在于所有的参数都是以浮点数的形式给出
所以,所有的参数必须限定在0.0~1.0之间

QColor QColor::fromRgb ( QRgb rgb ) [static]
该函数可以很方便的用给定的RGB值返回一个颜色组件对象
alpha会被自动忽略,通常会被设置成25,给函数fromRgba()函数传递一个QRgb值可以返回一个alpha取值。

QColor QColor::fromRgb ( int r, int g, int b, int a = 255 ) [static]
该静态成员函数可以横方便的根据给定的参数返回一个QColor颜色组件对象
所有的参数值必须限定在0~255之间

QColor QColor::fromRgbF ( qreal r, qreal g, qreal b, qreal a = 1.0 ) [static]
该静态成员函数可以横方便的根据给定的参数返回一个QColor颜色组件对象
所有的参数值必须限定在0.0~1.0之间

QColor QColor::fromRgba ( QRgb rgba ) [static]
静态成员函数,可以很方便的通过给定的RGB参数值翻返回一个QColor颜色组件对象
不同于函数fromRgb(),透明度阀值在给定的QRgb元祖中已经被定义。

void QColor::getCmyk ( int * c, int * m, int * y, int * k, int * a = 0 )
通过设置指针c,m,y,k,a的值来修改CMYK组件中对应的 cyan, magenta, yellow, black,alpha-channel (transparency) 取值
这些组件值可以通过调用 cyan(), magenta(), yellow(), black() , alpha()返回

void QColor::getCmykF ( qreal * c, qreal * m, qreal * y, qreal * k, qreal * a = 0 )
该函数和上面一个函数唯一的不同点在于所有的参数都是以浮点数的形式给出
CMYK组件中的元素值可以通过调用 cyanF(), magentaF(), yellowF(), blackF(), alphaF()得到

void QColor::getHsl ( int * h, int * s, int * l, int * a = 0 ) const
通过传递的指针h,s,l,a可以修改HSL组件中对应的 hue, saturation, lightness,alpha-channel (transparency) 取值
HSL组件的元素值可以通过调用hueHsl(), saturationHsl(), lightness() ,alpha()得到

void QColor::getHslF ( qreal * h, qreal * s, qreal * l, qreal * a = 0 ) const
该函数和上面一个函数的区别在于所有的参数都是浮点数
HSL组件的元素值可以通过调用hueHslF(), saturationHslF(), lightnessF(),alphaF()得到

void QColor::getHsv ( int * h, int * s, int * v, int * a = 0 ) const
通过传递的指针参数h,s,v,a可以修改HSV组件中对应元素hue, saturation, value,alpha-channel (transparency) 的取值
HSV组件对象中的元素值可以通过调用 hue(), saturation(), value(), alpha()得到。

void QColor::getHsvF ( qreal * h, qreal * s, qreal * v, qreal * a = 0 ) const
该函数和上面一个函数唯一的区别在于所有的参数都是用浮点数形式给出的
HSV组件对象中的元素值可以通过调用 hueF(), saturationF(), valueF(),alphaF()得到

void QColor::getRgb ( int * r, int * g, int * b, int * a = 0 ) const
通过指针参数r,g,b,a来设置HSV颜色组件对象中hue, saturation, value, alpha-channel (transparency)的取值
这些组件元素值可以通过分别调用hueF(),saturationF(),valueF()而得到。

void QColor::getRgb ( int * r, int * g, int * b, int * a = 0 ) const
通过指针参数r,g,b,a来设置RGB颜色组件对象中hue, saturation, value, alpha-channel (transparency)的取值
这些组件元素值可以通过调用 red(), green(), blue() ,alpha()而得到。

void QColor::getRgbF ( qreal * r, qreal * g, qreal * b, qreal * a = 0 ) const
这个函数与上面一个函数唯一的不同点在于所给定的参数类型全部为浮点型
这些组件元素值可以通过调用 redF(), greenF(), blueF(),alphaF()而得到

int QColor::green () const
返回该颜色组件中对应的绿色成分值

qreal QColor::greenF () const
用浮点数的形式返回该颜色组件中对应的绿色成分值

int QColor::hslHue () const
以整数的形式返回该HSL颜色组件中对应的色调取值

qreal QColor::hslHueF () const
以浮点数的形式返回该HSL颜色组件中对应的色调取值

int QColor::hslSaturation () const
以整数的形式返回该HSL颜色组件中对应的饱和度取值

qreal QColor::hslSaturationF () const
以浮点数的形式返回该HSL颜色组件中对应的饱和度取值

int QColor::hsvHue () const
以整数的形式返回该HSV颜色组件中对应的色调取值

qreal QColor::hsvHueF () const
以浮点数的形式返回该HSV颜色组件中对应的色调取值

int QColor::hsvSaturation () const
以整数的形式返回该HSV颜色组件中对应的饱和度取值

qreal QColor::hsvSaturationF () const
以浮点数的形式返回该HSV颜色组件中对应的饱和度取值

int QColor::hue () const
以整数的形式返回该颜色组件中对应的色调取值,该颜色组件可以隐式的转换为HSV模式

qreal QColor::hueF () const
以浮点数的形式返回该颜色组件中对应的色调取值,该颜色组件可以隐式的转换为HSV模式

bool QColor::isValid () const
判断该颜色是否有效,有效则返回true,否则返回false

bool QColor::isValidColor ( const QString & name ) [static]
如果参数Name是一个合法的颜色名称并且可以用于初始化一个颜色组件对象则返回true,否则返回false
这个函数与setNameColor()所运用的算法是类似的。
这个函数在QT4.7中有介绍

QColor QColor::lighter ( int factor = 150 ) const
返回一个暗黑或者明亮的颜色副本,不修改源颜色
如果参数factor大于100,函数返回一个更亮的颜色
把参数factor置为150则颜色明亮度增加50%左右
如果参数factor小于100则返回一个暗色,我们推荐使用darker()来达到返回暗色的效果。
如果factor为0或者负数值,则结果值未定义
该函数可以横方便的在RGB和HSV中进行转换,只要在HSV组件中去掉V值则可以把该颜色还原成RGB格式

int QColor::lightness () const
返回一个颜色组件的亮色副本。

qreal QColor::lightnessF () const
以浮点数形式返回一个颜色组件的亮色副本

int QColor::magenta () const
返回CMYK模式下M的取值

qreal QColor::magentaF () const
以浮点数的形式返回在CMYK模式下M的取值

QString QColor::name () const
以"RRGGBB"的格式返回颜色名称,

int QColor::red () const
以整数的形式返回RGB模式下red的取值

qreal QColor::redF () const
以浮点数的形式返回RGB模式下red的取值

QRgb QColor::rgb () const
返回一个RGB颜色组件,默认情况下alpha成员元素被置为255,即不透明

QRgb QColor::rgba () const
返回当前颜色的RGB四元组,其中包含了alpha元素值。Rgba(r,g,b,a).
对于一个无效的颜色,返回的Rgb组件中的alpha元素值是未定义的。

int QColor::saturation () const
用整数的形式返回该颜色中饱和度的取值
该颜色可以隐式的转换为HSV模式

qreal QColor::saturationF () const
用浮点数的形式返回该颜色组件中对应的饱和度元素的取值
该颜色可以隐式的转换为HSV模式

void QColor::setAllowX11ColorNames ( bool enabled ) [static]
如果参数为enabled则允许函数setNamedColor()在X11颜色数据库中搜寻相关的颜色名称,
默认情况下,setNamedColor()函数式不会搜寻X11颜色数据库的。
附注:该函数仅对X11 系统平台有效

void QColor::setAlpha ( int alpha )
把该颜色组件对象中对应的QT::alpha元素值取值为整形参数alpha所给定的值
该值必须是一个有效值,必须限定在0~255之间

void QColor::setAlphaF ( qreal alpha )
把该颜色组件对象中对应的QT::alpha元素值取值为浮点数参数alpha所给定的值
该值必须是一个有效值,必须限定在0.0~1.0之间

void QColor::setBlue ( int blue )
把该颜色组件对象中对应的QT::blue元素取值为整形参数blue所给定的值
该整型值必须是一个有效值,必须限定在0~255之间

void QColor::setBlueF ( qreal blue )
把该颜色组件对象中对应的QT::blue元素取值为浮点数参数blue所给定的值
该整型值必须是一个有效值,必须限定在0.0~1.0之间

void QColor::setCmyk ( int c, int m, int y, int k, int a = 255 )
设定CMYK颜色组件中对应的元素 c (cyan), m (magenta), y (yellow), k (black), a (alpha-channel, i.e. transparency)
所有的参数值必须限定在0~255

void QColor::setCmykF ( qreal c, qreal m, qreal y, qreal k, qreal a = 1.0 )
设定CMYK颜色组件中对应的元素 c (cyan), m (magenta), y (yellow), k (black), a (alpha-channel, i.e. transparency)
所有的参数值必须限定在0.0~1.0

void QColor::setGreen ( int green )
把该颜色组件对象中对应的QT::green元素取值为整形参数green所给定的值
该整型值必须是一个有效值,必须限定在0~255之间

void QColor::setGreenF ( qreal green )
把该颜色组件对象中对应的QT::green元素取值为浮点数参数green所给定的值
该整型值必须是一个有效值,必须限定在0.0~1.0之间

void QColor::setHsl ( int h, int s, int l, int a = 255 )
设定HSL模式下该颜色组件中对应的色调(hue),饱和度(saturation),明亮(lightness),透明度(alpha)
饱和度(QT::saturation)和透明度(QT::alpha)的取值必须限定在0~255之间,
色调(QT::hue)的取值必须大于-1

void QColor::setHslF ( qreal h, qreal s, qreal l, qreal a = 1.0 )
设定HSL模式下该颜色组件中对应的色调(hue),饱和度(saturation),明亮(lightness),透明度(alpha)
所有的参数值必须限定在0.0~1.0之间

void QColor::setHsv ( int h, int s, int v, int a = 255 )
设定HSV模式下该颜色组件中对应的色调(hue),饱和度(saturation),明亮(lightness),透明度(alpha)
饱和度(QT::saturation)和透明度(QT::alpha)的取值必须限定在0~255之间,
色调(QT::hue)的取值必须大于-1

void QColor::setHsvF ( qreal h, qreal s, qreal v, qreal a = 1.0 )
设定HSV模式下该颜色组件中对应的色调(hue),饱和度(saturation),明亮(lightness),透明度(alpha)
所有的参数值必须限定在0.0~1.0之间

void QColor::setNamedColor ( const QString & name )
设定RGB组件的颜色名称,他们必须是以下几种格式形式:
#RGB (each of R, G, and B is a single hex digit)
#RRGGBB
#RRRGGGBBB
#RRRRGGGGBBBB
一份来至因特网合作团队提供的SVG颜色关键字清单定义了一系列的颜色名称,例如"steelblue" , "gainsboro"
这些颜色名称可以用于任何一个系统平台,另外这些颜色名称定义和QT::GlobalColor所定义的颜色名称枚举清单是不同的
比如"green"和QT::green不是指同一种颜色。
X11平台:如果allowX11ColorNames()返回true则该名称被视为合法的,详细的合法颜色名称使用
可以通过调用XParseColor()进行查看
如果该名称无法被QT解析则被视为无效的

void QColor::setRed ( int red )
设定颜色组件中QT::red元素的取值,参数red必须限定在0~255

void QColor::setRedF ( qreal red )
设定颜色组件中QT::red元素的取值,参数red必须限定在0.0~1.0

void QColor::setRgb ( int r, int g, int b, int a = 255 )
设定Rgba(r,g,b,a)组件中各个元素的取值,所有的参数值必须限定在0~255

void QColor::setRgb ( QRgb rgb )
重载函数,alpha被设定为255,即不透明

void QColor::setRgbF ( qreal r, qreal g, qreal b, qreal a = 1.0 )
设定Rgba(r,g,b,a)组件中各个元素的取值,所有的参数值必须限定在0.0~1.0

void QColor::setRgba ( QRgb rgba )
设定Rgba(r,g,b,a)组件中各个元素的取值

Spec QColor::spec () const
返回一个指定的颜色

QColor QColor::toCmyk () const
创建并返回CMYK模式下(*this)颜色对象的一个副本,功能类似于复制构造函数。

QColor QColor::toHsl () const
创建并返回HSL模式下(*this)颜色对象的一个副本,功能类似于复制构造函数。

QColor QColor::toHsv () const
创建并返回HSV模式下(*this)颜色对象的一个副本,功能类似于复制构造函数。

QColor QColor::toRgb () const
创建并返回RGB模式下(*this)颜色对象的一个副本,功能类似于复制构造函数。

int QColor::value () const
返回颜色组件元祖的数值形式,比如返回一个RGB(0,225,0)或者其他模式的。

qreal QColor::valueF () const
以浮点数形式返回颜色组件元祖的数值形式,比如返回一个RGB(0.0, 225.0 ,0.0)或者其他模式的

int QColor::yellow () const
返回该颜色组件对象中QT::yellow元素的取值

qreal QColor::yellowF () const
以浮点数类型返回该颜色组件对象中QT::yellow元素的取值

QColor::operator QVariant () const
以QVariant类型的形式返回一种颜色组件

bool QColor::operator!= ( const QColor & color ) const
如果(*this)颜色对象组件中对应的RGB和QT::alpha不等于参数color所给定的则返回true
否则返回false

QColor & QColor::operator= ( Qt::GlobalColor color )
赋值构造函数

bool QColor::operator== ( const QColor & color ) const
如果(*this)颜色对象组件中对应的RGB和QT::alpha等于参数color所给定的则返回true
否则返回false

相关的非成员类型:
typedef QRgb;
把ARGB定义成"#AARRGGBB"格式的四元组,是unsigned int 的类型重定义。
AGRB类型可以用于指定颜色是否透明,默认情况下QT::alpha被设定为255,即不透明

int qAlpha ( QRgb rgba )
从ARGB四元组中返回QT::alpha的取值

int qBlue ( QRgb rgb )
从ARGB四元组中返回QT::blue的取值

int qGray ( int r, int g, int b )
从RGB三元祖中返回QT::gray的取值
QT::gray的取值可以用这个公式计算得出:(r * 11 + g * 16 + b * 5)/32.

int qGray ( QRgb rgb )
从ARGB四元祖中返回QT::gray的取值
QT::gray的取值可以用这个公式计算得出:(r * 11 + g * 16 + b * 5)/32. QT::alpha被忽略

int qGreen ( QRgb rgb )
从ARGB四元祖中返回QT::green的取值

int qRed ( QRgb rgb )
从ARGB四元祖中返回QT::red的取值

QRgb qRgb ( int r, int g, int b )
用给定的参数值,返回ARGB四元组(255,r,g,b).

QRgb qRgba ( int r, int g, int b, int a )
用给定的参数返回ARGB四元组

QDataStream & operator<< ( QDataStream & stream, const QColor & color )
向输出缓冲流中写入颜色组件对象值
QDataStream & operator>> ( QDataStream & stream, QColor & color )
从输如缓冲流中写读取颜色组件对象值





 






Qt学习 第22节:Qcolor 中的Alpha不透明度 QColor::QColor(int r, int g, int b, int a = ...) Constructs a color with the RGB value r, g, b, and the alpha-channel (transparency) value of a. color对象里头的alpha其实是指不透明度,其值范围为0-255,越大越不透明。 其通常对应opacity,这个就是单词语义表达的不透明度,其值范围[0,1.0f],值越大,越不透明。 opacity与a... 阅读详情

相关推荐

QT与VS2015编译错误:QColor构造函数参数不匹配的深度解析与修复方案

本文深度解析了在QT5.14.2与VS2015环境下编译时遇到的经典错误:QColor构造函数参数不匹配(Error: C2661)及常量表达式错误。文章指出其根源在于编译器对C++11/14特性支持与QT内部宏的冲突,并提供了无需升级环境的实战修复方案,包括修改QT头文件代码顺序与添加预处理器宏定义,手把手帮助开发者解决这一编译难题。

sre5engineer的博客 735

Qt中QColor用法

QColor

yc__coder的博客 7万+

alpha值计算 qcolor_将QColor转换为QString而不会丢失Alpha值(Converting QColor into QString without losing alpha val...

将QColor转换为QString而不会丢失Alpha值(Converting QColor into QString without losing alpha value)考虑一下代码:QColor m_color = QColor(255,255,255,0); //alpha is 0QString m_str = m_color.name(); //#ffffffm_color是一个alp...

weixin_39574708的博客 719

详解QColor的使用

Qt中的QColor类是用来处理颜色的对象,它在Qt GUI编程中有着广泛的应用,比如设置控件的颜色、绘制图形的颜色等等。下面将详细介绍QColor的基本使用方法、一些实用技巧以及需要注意的事项,并给出C++代码示例。

简介 4297

QT与VS2015编译难题:QColor参数错误与QMetaObject常量表达式问题实战解析

本文针对在QT5.14.2与Visual Studio 2015环境下编译时遇到的C2661 QColor参数错误和C2134 QMetaObject常量表达式问题,提供了详细的实战解决方案。通过分析编译器对C++11标准支持的差异,指导读者修改关键头文件与配置项目宏定义,从而在不升级环境的前提下有效解决这两个经典编译难题。

weixin_29018815的博客 130

Qt界面开发避坑指南:QColor透明度(Alpha)的5个常见使用误区与正确姿势

本文深入探讨了Qt界面开发中QColor透明度(Alpha)的5个常见使用误区与正确实践。从Alpha通道的基本原理、性能优化、跨平台处理差异到样式表使用技巧和内存管理,全面解析了透明效果开发中的关键问题,帮助开发者避免常见陷阱,提升界面渲染效率和质量。

weixin_30363509的博客 323

Qt: QColor转RGB字符串

【代码】Qt: QColor转RGB字符串。

小鹰信息技术服务部 2583

QT5.14.2+VS2015开发环境避坑指南:解决QColor报错C2661的3种方法

本文针对QT5.14.2与VS2015开发环境中常见的QColor报错C2661问题,深入剖析了其根源在于编译器对C++11/14标准支持不完整与QT库条件编译的矛盾。文章提供了三种核心解决方案:通过预处理器宏定义直接修复、安全地进行头文件修补以应对constexpr错误,以及从代码层面进行适配与重构。旨在帮助开发者在不升级工具链的前提下,高效解决编译难题并加固老旧但稳定的开发环境。

weixin_29009669的博客 516

Qt 实例9 QColor应用:通过数值进行颜色设置

界面控件依次为:QLabel、QSlider、QLineEdit、QLabel、QSlider、QLineEdit、QLabel、QSlider、QLineEdit、QTextEdit。Qt中,通过QSlider进行拖动、QLineEdit进行数值设置,联动设置QColor颜色值。3、点击【运行】或【Ctrl+R】运行程序。可以通过拖动QSlider或在QLineEdit控件输入数值进行颜色设置。1、创建工程并进行界面设计。.cpp源文件构造函数内绑定槽函数,并实现槽函数。2、创建创建槽函数及类私有函数。

Mountain_tai_li的博客 1655

【Qt开发】颜色控件QColor类详解及实战应用

QColor是Qt提供的一个功能强大且灵活的颜色控件,通过本篇文章的学习,你应该对QColor有了全面的理解,能够在自己的项目中正确使用它。QColor在用户界面中帮助你更好地组织和管理颜色,有助于创建用户友好和高效的界面。

科技改变人类,技术成就未来 2580

QColor 类的使用示例(C/C++)

以上示例程序演示了 QColor 类的基本用法,包括创建颜色对象、获取和设置颜色的 RGB 值、判断颜色是否为透明色、混合颜色以及将颜色转换为十六进制字符串。QColor 类是 Qt 框架中的一个重要类,用于表示颜色。在 C/C++ 中使用 QColor 类可以实现对颜色的创建、修改和操作。本文将介绍 QColor 类的基本用法,并提供相应的源代码示例。以上只是 QColor 类的一小部分功能示例,实际上 QColor 类还提供了更多强大的功能,如颜色空间转换、调整亮度和对比度等。

PixelBlade的博客 431

clion开发qt项目QtGui/qcolor.h: In construconstexpr QColor::QColor(int, int, int, int)’:ctor ‘&1073741515

windows下用clion开发qt项目: 运行时报错: ../../Qt5.14.0_2/5.14.0/gcc_64/include/QtGui/qcolor.h: In construconstexpr QColor::QColor(int, int, int, int)’:ctor ‘ ../../Qt5.14.0_2/5.14.0/gcc_64/include/QtGui/qcolor.h:79:18: sorry, unimplemented: use of the value of the

苏凯的博客 1005

详解Qt 之 QColor、QColorSpace与QColorTransform

在图形和用户界面开发中,颜色的处理是一个基本而又重要的部分。Qt 提供了丰富的颜色处理类,其中包括QColor和。QColor用于表示和操作颜色,用于表示颜色空间,而用于颜色空间转换。本文将详细介绍这些类的功能、常用方法,并通过示例代码展示其实际应用。QColor和是 Qt 提供的强大工具,用于处理颜色和颜色空间。通过这些类,开发者可以方便地定义、转换和操作颜色,从而满足各种图形和用户界面开发的需求。本文详细介绍了这些类的主要功能和常用方法,并通过示例代码展示了其实际应用。

m0_62599305的博客 1090

Qt颜色处理全攻略:QColor类深度解析与实战代码

Qt框架中的QColor类提供了强大的颜色处理功能,支持RGB、HSV、CMYK等多种颜色空间,并包含透明度处理。通过多种构造方式(预定义颜色、RGB值、字符串等)创建颜色对象,提供颜色信息获取、修改调整、空间转换等核心功能。文章详细介绍了颜色渐变生成、拾取转换工具等高级应用,以及性能优化技巧和常见问题解决方案。掌握QColor类能有效处理Qt应用中的颜色需求,建议结合示例代码进行实践以深入理解其功能。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 82

Qt中的QColor类:颜色的选择与应用

以上代码中,我们创建了一个QPushButton和一个QLabel控件,分别用于选择颜色和显示颜色。当用户点击按钮后,我们弹出一个颜色选择对话框,并将所选颜色应用到QLabel控件的背景色上。Qt是一款跨平台的GUI开发框架,它提供了许多实用的工具类,其中包括了QColor类,该类主要用于颜色的选择和应用。通过以上示例,我们可以看到QColor类的简单使用方法,它可以帮助我们轻松实现颜色的选择和应用。设置完颜色后,我们可以将其应用到各种控件上,如QLabel、QPushButton等。

CyberLynxO的博客 1239

QT的QColor 类的使用

详细说明 QColor类提供基于RGB,HSV或CMYK值的颜色。 通常使用RGB(红色,绿色和蓝色)成分来指定颜色,但是也可以使用HSV(色相,饱和度和值)和CMYK(青色,品红色,黄色和黑色)来指定颜色。 组件。 另外,可以使用颜色名称指定颜色。 颜色名称可以是任何SVG 1.0颜色名称。 混合图 QColor还支持Alpha混合轮廓和填充。 颜色的Alpha通道指定透明效果,0表示完全透明的颜色,而255表示完全不透明的颜色。 例如: // Specify semi-transparent re

希望我的博客,能帮上你解决学习中工作中所遇到的问题 3619

出现诸如“QColor: No such file or directory”解决办法

我用到一个头文件#include<QColor>运行程序出现以下错误:QColor: No such file or directory在.pro文件里把QT -=gui改成QT +=gui 即解决。 转载于:https://blog.51cto.com/dreamylights/1291932...

weixin_34176694的博客 1314

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3459
上一篇: QT::QKeyEvent
下一篇: QT::QAbstractFileEngine
错_对
博客等级 码龄16年 68粉丝 80原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值