QColor和QString互相转换

今天在项目中需要用到QColor,但是在另一个编译环境中并不支持Qt的类型,或者其他原因不能使用QColor,那么此时转为QString是最好的做法,因为无论任何语言都支持字符串,只需要把QColor的rgb提取出来转成字符串,那么就可以兼容后续任何操作了。

废话少说,上代码:

	 //函数的声明
     //字符串转QColor ,如:"255,0,0"/"red" to QColor(Qt::red)
     QColor stringToColor(QString colorStr);
     //QColor转字符串:,如:QColor(Qt::red) to "255,0,0"
     QString colorTostring(QColor color);



	//函数的实现
	QColor stringToColor(QString colorStr)
{
    
    
    QColor color;
    QStringList rgb=colorStr.split(',');
    if(rgb.size()==3){
    
    
        int r=rgb.at(0).toInt();
        int g=rgb.at(1).toInt();
        int b=rgb.at(2).toInt();
        color.setRgb(r,g,b);
    }
    else
        color.setNamedColor(colorStr);

    return color;
}

QString colorTostring(QColor color)
{
    
    
    QString str = "";
    str = QString::number(color.red())+","+QString::number(color.green())+","+QString::number(color.blue());
    return str;
}


猜你喜欢

转载自blog.csdn.net/weixin_44650358/article/details/127301187