Qt颜色十六进制转RGB
1.功能描述
在开发过程中需要将十六进制表示的颜色转化为RGB或QColor,在网上搜索后,最常见的方法如下
QString colorstr = "#ffffff"; QColor color(colorstr.toUInt(NULL,16));
然而自己在实现的过程中,发现该方法并没有达到想要的效果,不知道是不是自己用错了。
实际上,十六进制颜色的六个字符与RGB对应,每两个字符一组,分别表示R、G、B的十六进制值,因此,只需要将其分别转换成十进制,即可得到RGB值和QColor。
2.代码实现
QString colorstr = "#ffffff"; int r = ctext.mid(1, 2).toInt(nullptr, 16); int g = ctext.mid(3, 2).toInt(nullptr, 16); int b = ctext.mid(5, 2).toInt(nullptr, 16); QColor color = QColor(r, g, b);