Qt | 关于颜色属性的使用 QColor
前言:
在 Qt 中,用 QColor 类来封装颜色功能。QColor 类提供了基于 RGB、HSV 或 CMYK 值的颜色。颜色通常用 RGB(红色、绿色和蓝色)组件来指定,也可以用 HSV(色相、饱和度和值)组件来指定,还可以用 CMYK(青色、品红、黄色和黑色)组件来指定。除了这三个组件,还可以用颜色名称来指定颜色。颜色名称为 SVG1.0 中的颜色名称。
颜色的创建:
QColor 类的构造函数是基于 RGB 值来创建颜色的,如果想要基于 HSV 值或者 CMYK 值创建,可以调用 toHsv()函数和 toCmyk()函数进行转换。
fromRgb()、fromHsv()、fromCmyk()函数用来使用指定的值创建颜色。
convertTo()函数用来以所需格式返回颜色的副本。
setRgb()、setHsv()、setCmyk()函数可以实现颜色转换。
lighter()和 darker()函数可以实现获得比指定颜色较浅或者较深的颜色。
isValid()函数可以判断一个给定的颜色是否有效。
QColor 常用的五种构造函数:
QColor(int r, int g, int b, int a=……);通过传入 r、g、b 三个分量来创建一个颜色对象。最后一个参数 a 表示 alpha-channel(alpha 通道,表示颜色透明度的意思)。例: QColor blue(0, 0, 255, 255);//创建一个不透明的蓝色值
QColor(QRgb color);用 QRgb 对象作为参数来创建一个 QColor 对象。QRgb 是一个重定义的 Qt 类型,等同于 unsigned int。它的格式如 #AARRGGBB,其中 AA 是 alpha 通道值,表示一个颜色的透明度,也可以不带透明度,默认为不透明。例: QColor red("#FF0000");//创建一个红色值
QColor(const QString &name);用字符串 name 来创建一个 QColor 对象。功能类似于函数 setNameColor();例: QColor("green");//创建一个绿色值
QColor(const char* name);用字符串 name 来创建一个 QColor 对象。例: QColor("green");//创建一个绿色值
QColor(const QColor &color);用一个 QColor 对象来创建一个 QColor 对象。例: QColor color("green"); QColor(color);
QColor、QString 和 QRgb 相互转换:
- QColor 转 QRgb:
- QRgb 转 QColor:
- QRgb 转 QString: (由于 QRgb 就是一个 unsigned int 类型,因此相当于把 unsigned int 转为 QString)
- QString 转 QColor:(先将 QString 转为 QRgb,再利用构造函数 QColor(QRgb color)进行转换)
版权声明: 本文为 InfoQ 作者【YOLO.】的原创文章。
原文链接:【http://xie.infoq.cn/article/36078d32ecfc4dca68c687857】。未经作者许可,禁止转载。
评论