实验:
QString i = "iTest"; // current file's number
QString total = "totalTest"; // number of files to processstd::cout<<status.toStdString()<<std::endl;
输出结果:
具体讲解:
在QT的QString中,arg方法类似于C中的printf中使用的格式输出符(只是有点类似)。
在QT5的帮助文档中,可以看出以下几点:
使用arg(str1, str2, str3)这种方法进行替换。
使用arg(str1).arg(str2).arg(str3)这种方法进行替换。
使用arg(int, int, int)这种方式进行替换。
解释以下两种方法:
一:使用arg(str1, str2, str3)
这种方法要求str1、str2、str3都为const QString &类型,即:
QString QString::arg(constQString & a1,constQString & a2,constQString & a3)const同时,arg( )里的参数实现从1个到9个,也就是说最多只能有9个!即在实现中,arg的定义中参数最多的为:
QString str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11"). arg("1","2","3","4","5","6","7","8","9")str将只会输出:
QString str = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11"). arg("1","2","3","4","w","6","7","8","9").arg("a","b");//输出为:
QString str; str ="%1 %2"; str.arg("%1f","Hello"); // returns "%1f Hello" str.arg("%1f").arg("Hello"); // returns "Hellof %2"如果你copy这个代码去测试一下,会发现,输出结果还是:"%1 %2" 。根本没有其给出的结果。(没找到源码,有谁知道怎么查看QT的源码,求帮助!说找src文件夹的就不要来了,根本木有)
QString str=QString("%1 %2 %3 %4").arg("A").arg("B").arg("C").arg("D"); //str=="A B C D"简单说就是挨着替换呗。但请注意下面的形式:
str = QString("%1 %2").arg("%1World").arg("Hello"); //输出:"HelloWorld %2" str = QString("%1 %2").arg("%2World").arg("Hello"); //输出:"HelloWorld Hello" str = QString("%1 %2").arg("%3World").arg("Hello"); //输出:"%3World Hello" str = QString("%1 %2").arg("%8World").arg("Hello"); //输出:"%8World Hello" str = QString("%1 %6").arg("%3World").arg("Hello"); //输出:"HelloWorld %6" str = QString("%2 %6").arg("%3World").arg("Hello"); //输出:"HelloWorld %6" str = QString("%0 %6").arg("%3World").arg("Hello"); //输出:"HelloWorld %6" str = QString("%-1 %6").arg("%3World").arg("Hello"); //输出:"%-1 HelloWorld"
doubled = 12.345689; str = QString("delta: %1").arg(d, 0,'g',4); //输出为:"delta: 12.35" ---这里进行了四舍五入 str = QString("delta: %1").arg(d, 0,'G',5); //输出为:"delta: 12.346" ---这里进行了四舍五入 str = QString("delta: %1").arg(d, 0,'e',4); //输出为:"delta: 1.234e+01" str = QString("delta: %1").arg(d, 0,'E',4); //输出为:"delta: 1.234E+01" str = QString("delta: %1").arg(d, 0,'r',4); //输出为:"delta: 12.345689" str = QString("delta: %1").arg(d, 0,'Q',4); //输出为:"delta: 12.345689"