找回密码
 立即注册
收起左侧

【独家连载】Qt进阶002: QString的arg()接口

0
回复
1717
查看
[复制链接]
累计签到:41 天
连续签到:1 天
来源: 原创 2018-9-11 22:56:52 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 baizy77 于 2018-9-28 21:53 编辑

原创文章,转载请注明出处。
===========================================================
引言
----------------------------------------------------------------------------------------------------------------------
       在Qt中,QString应该算最常用的类之一了。我们经常用它来打印信息或者存储内容。今天,我们来讨论一个很有用的接口arg()。我们会用它来进行多个参数传入,然后把它用在国际化翻译中。

正文
----------------------------------------------------------------------------------------------------------------------
       我们先看一下QString的头文件中的定义:

  1. QString arg(const QString & a, int fieldWidth = 0, QChar fillChar = QLatin1Char( '' )) const
复制代码

       实际上,QString提供了好几个arg()接口,我们这里只展示了其中一个。
       在使用的时候,我们可以将几个参数依次传给QString,比如:
  1. qrealx = 0.f;
  2. qrealy = 0.f;
  3. qrealw = 10.f;
  4. qrealh = 20.f
  5. QStringstrRect = QString::tr("x:%1,y:%2,w:%3,h:%4").arg(x).arg(y).arg(w).arg(h);
复制代码


       然后,在ts文件中,我们可以这样写:

           
  1. <name> QString </name>
  2. <message>
  3. <source> x:%1, y:%2,w:%3,h:%4</source>
  4. <translation> x坐标:%1, y坐标:%2,宽:%3,高:%4</translation>
  5. </message>
复制代码

       这样,得到的字符串就可以转变为带着几个参数的中文信息了。

结语
----------------------------------------------------------------------------------------------------------------------
       QString在Qt的界面编程中用途非常广泛,而且4.x之后是多线程安全的(具体版本待查)。我们可以充分利用QString提供的各种接口编写非常高效的程序。
===========================================================
本教程的纸质书籍正在编写中,课程视频也在录制中,敬请关注。
===========================================================

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关于进行手机实名认证的紧急通知!
按照有关部门要求,论坛类网站必须完成手机实名认证才可以进行发帖等操作。希望大家积极配合,为创建一个和谐文明的社区而贡献自己的力量。我们会对会员的隐私进行严格保密,对大家造成的不便深表歉意! 我知道了