QString之arg

Posted qthub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于QString之arg的主要内容,如果未能解决你的问题,请参考以下文章

Qt中的QString::sprintf和QString::arg有啥区别?

QString::?arg的用法

QString::arg()的参数中的“%1”如何处理?

QString arg能不能像Python format一样使用

使用QString的arg方法一定要小心

Qt在使用过程中的小总结