QT::QColorQColor 类参考QColor用于提供基于RGB,HSV,CMYK等组件的色彩值。Public Types enum Spec { Rgb, Hsv, Cmyk, Hsl, Invalid }
公有函数:
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 ) 从输如缓冲流中写读取颜色组件对象值
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 ) 从输如缓冲流中写读取颜色组件对象值