我尝试替换QString img=":/images/f0000.png";
这是我的代码
if(pValue>=50 && pValue<=89)
{
QString img=":/images/f0000.png";
QString img=":/images/f0000.png";
//qDebug()<<img<<endl;
if(pValue>=50 && pValue<=59)
{
img.data()[12]='0';
img.data()[13]=char('0'+pValue-50);
}//end if
else if(pValue>=60 && pValue<=89)
{
img.data()[12]=char('0'+((pValue-50)/10));
img.data()[13]=char('0'+((pValue-50)%10));
}//end else if
qDebug()<<img<<endl;
}//end if
如果pVaule为51,则img应该为":/images/f0001.png"
如果pVaule为71,则img应该为":/images/f0021.png"
但是我的结果是 pVaule是51 img
":/images/f000\u0001.png"
pVaule是71 img
":/images/f00\u0002\u0001.png"
如何解决?
答案 0 :(得分:2)
您必须使用数字的ASCII值...
if(pValue>=50 && pValue<=89)
{
QString img=":/images/f0000.png";
if(pValue>=50 && pValue<=59)
{
img.data()[12]='0';
img.data()[13]='0'+char(pValue-50);
}
else if(pValue>=60 && pValue<=89)
{
img.data()[12]='0'+char(pValue-50)/10;
img.data()[13]='0'+char(pValue-50)%10;
}
}
此外,对此的更好解决方案是:
img.replace(10, 4, QString(4 - QString::number(50 + pValue).length()), '0') + QString::number(50 + pValue));