• 6588阅读
  • 7回复

[提问]关于:“QString  arg()” 求助 [复制链接]

上一主题 下一主题
离线314361768
 

只看楼主 倒序阅读 楼主  发表于: 2012-04-06
要实现的字符串 "12345678<XXXXXX>"   其中 12345678  必须为8位数的
int i=1;
QString str = tr("%1<XXXXXX>")
  .arg(i);
此时输出:1<<XXXXXX>

QString str = tr("%1<XXXXXX>")
  .arg(i,8);

此时输出:_______1<<XXXXXX>                      _代表空格

QString str = tr("%1<XXXXXX>")
  .arg(i,-8);

此时输出:1________<<XXXXXX>                      _代表空格

想实现的输出为: 00000001<XXXXXX>    即 i不够8位 前面补0,而不是空格。
等待高人解答。      


离线314361768

只看该作者 1楼 发表于: 2012-04-06
等待大牛出现,万分感谢   !

在线uidab

只看该作者 2楼 发表于: 2012-04-06
回 1楼(314361768) 的帖子
自己根据变量i的值,重新构造QString。否则直接这样不行。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线314361768

只看该作者 3楼 发表于: 2012-04-06
看来也只能这样了。不过做起来比较麻烦啊。
离线dbzhang800

只看该作者 4楼 发表于: 2012-04-06
引用楼主314361768于2012-04-06 09:45发表的 关于:“QString  arg()” 求助 :
要实现的字符串 "12345678<XXXXXX>"   其中 12345678  必须为8位数的
int i=1;
QString str = tr("%1<XXXXXX>")
  .arg(i);
此时输出:1<<XXXXXX>
.......

认真看Manual


http://qt-project.org/doc/qt-4.8/qstring.html#arg-10
离线314361768

只看该作者 5楼 发表于: 2012-04-06
QString str = tr("%1<XXXXXX>")
  .arg(i,8,10,QLatin1Char('0'));
万分感谢。   上午也看文档了,但没理解QLatin1Char(' ') 。 感谢指点。

离线dbzhang800

只看该作者 6楼 发表于: 2012-04-06
你可以直接 QChar(' ') 或 QChar('0')

至于QChar 和 QLatin1Char 的区别,其实就是

QString 和 QLatin1String 的区别,这些你也都可以看manual
在线uidab

只看该作者 7楼 发表于: 2012-04-06
回 4楼(dbzhang800) 的帖子
这样简单多了,原来也没理解QLatin1Char
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
快速回复
限100 字节
 
上一个 下一个