QString之arg

QString的arg接口主要用于字符串组合的功能。

arg接口列表

QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(qlonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(long a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(ulong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(uint a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(short a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(ushort a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
QString arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char(' ')) const
QString arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(QStringView a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(QLatin1String a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
QString arg(const QString &a1, const QString &a2) const
QString arg(const QString &a1, const QString &a2, const QString &a3) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5) const
QString arg(const QString &a1, const QString &a2, const QString &a3, const QString &a4, const QString &a5, const QString &a6) const
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 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 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-%99占位符来组合数据,每一个%?对应一个arg(...),最多可以添加到%99
QString str = QString("%1+%2=?").arg(1.1).arg(10.1);
qDebug() << str;
输出:1.1+10.1=?
  • 可以不按顺序填充数据:
QString str = QString("%2+%1=?").arg(1.1).arg(10.1);
qDebug() << str;
输出:10.1+1.1=?
  • 当然你还可以重复使用%1-%99
QString str = QString("%2+%1=%1+%2").arg(1.1).arg(10.1);
qDebug() << str;
输出:"10.1+1.1=1.1+10.1"
  • 如果填充的是都是QString类型数据,还可以合并在一个arg写,但最多9个参数
QString str = QString("%1 %2 %3").arg("Hello", "world", "!!!"); /* 这里的字符串隐式转换为QString了 */
qDebug() << str;
输出:"Hello world !!!"

进阶

  • 附加指定的填充数据:
QString arg(const QString &a, int fieldWidth = 0, QChar fillChar = QLatin1Char(' ')) const
  1. a:需要填充的数据
  2. fieldWidth:如果是正值,则fillChar字符依附在a的前面fieldWidth次;如果为负值,则fillChar字符依附在a的后面fieldWidth次。
  3. fillChar:依附在a前/后的字符。

  例:

qDebug() << QString("%1").arg("+", 5, '='); /* '='依附在'+'前5次 */
qDebug() << QString("%1").arg("+", -5, '=');/* '='依附在'+'后5次 */
输出:
====+
+====
  • 转换为对应进制的QString:
QString QString::arg(int a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(' ')) const
  1. a:需要填充的整型数据。
  2. base:转换目标为2到36进制之间。

  例:

qDebug() << QString("%1").arg(100, 0, 2); /* 转换为2进制 */
qDebug() << QString("%1").arg(100, 0, 16);/* 转换为16进制 */
输出:
1100100
64

本文分享自微信公众号 - Qt君(qtjuna)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用QFileSystemWatcher监视文件目录变化

    Qt君
  • 轻量级Qt键盘-中文输入

    中文输入候选栏ChineseWidget使用QListWidget和样式表实现:

    Qt君
  • Qt开源网络库[3]-原理篇上

    上一篇介绍到接口的使用,本篇主要讲述的是该网络库的HttpService与HttpRequest原理与实现。对QNetworkAccessManager...

    Qt君
  • Qt音视频开发34-Onvif时间设置

    对设备设置时间很有必要,这个是必备的功能,毕竟大部分的前端设备比如摄像机本身不带BIOS电池的,所以没法存储时间,要么设置了NTP地址来同步时间,要么其他设备主...

    feiyangqingyun
  • Windows查看文件句柄

    图形界面方式     打开任务管理器 ?      2. 性能tab,点击链接打开资源监视器; ?     3. 现在cpu tab,关联的句柄后面的输入框可以...

    囚兔
  • .NET Core 3.0之深入源码理解Kestrel的集成与应用(一)

    ASP.NET Core 的 Web 服务器默认采用Kestrel,这是一个跨平台、轻量级的Web服务器(需要指出的是从 ASP.NET Core 2.1 开始...

    Edison.Ma
  • 实现小型打包工具

    hey,各位宝宝,最近的疫情很严重,大家尽量就不要到外面浪了,好好在家做个安静的宝宝吧。不得不出门时也一定要戴口罩哦!照顾好自己,望平安... ...

    用户3258338
  • 翻动100万级的数据 —— 只需几十毫秒

    感谢大家的支持!!! 昨天发了一个邀请,邀请大家帮忙测试,效果还可以,下面小结一下: 通过内部的计数器得知:访问次数是1071(其中有好多是自己点的:)),...

    用户1174620
  • Spring AOP 的实现机制

    AOP(Aspect Orient Programming),一般称为面向切面编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管...

    一个优秀的废人
  • 聊聊flink的KvStateRegistryGateway

    flink-1.7.2/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/KvSta...

    codecraft

扫码关注云+社区

领取腾讯云代金券