QT学习之QString的arg方法
QT学习之QString的arg方法
在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 &类型,即:
1 |
QString
QString::arg( const QString
& a1, const QString
& a2, const QString
& a3) const
|
同时,arg( )里的参数实现从1个到9个,也就是说最多只能有9个!即在实现中,arg的定义中参数最多的为:
1 |
QString
QString::arg( const QString
& a1, const QString
& a2, const QString
& a3, const QString
& a4, const QString
& a5, const QString
& a6, const QString
& a7, const QString
& a8, const QString
& a9) const
|
这也就意味着,如果有如下代码:
1 2 |
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将只会输出:
1 |
"1
2 3 4 5 6 7 8 9 %10 %11"
|
解决方法为在后面再加一个arg方法,放上后面两个对应的参数:
1 2 3 4 |
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" );
//输出为:
//
"1 2 3 4 5 6 7 8 9 a b"
|
注意:在QT5帮助文档中,给出了如下代码: