int, float, double等数值类型转换为QString的方法

1. 用QTextStream

QTextStream类可以用数据流的方式直接将任意多个数值、字符、字符串等传入QString。举例如下:

QString strData;
double a1 = 3.14;
int a2 ;
QTextStream(&strData) <<a1 <<"-"<<a2 ;

用法还比较简单,但是设置数值类型的格式不太方便。

2. 用QString::arg() (推荐)

QString::arg()是QString类中的一个重载函数,可以转换各种数值类型,并设置输出格式。

下面是Qt官方文档中的说明。

QString    arg(const QString & a, int fieldWidth = , 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
QString arg(int a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(uint a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(long a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(ulong a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(qlonglong a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(qulonglong a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(short a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(ushort a, int fieldWidth = , int base = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(QChar a, int fieldWidth = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(char a, int fieldWidth = , QChar fillChar = QLatin1Char( ' ' )) const
QString arg(double a, int fieldWidth = , char format = 'g', int precision = -, QChar fillChar = QLatin1Char( ' ' )) const

以int类型为例,fieldWidth表示整个数值所占的长度,base表示进制数(如10,8,2等),fillChar表示填充的字符。

int a1 = ;
int a2 = ;
QString strData = QString("%1-%2").arg(a1, , , QChar('')).arg(a2, , , QChar(''));
这样strData = "123-038"
关于QString("%1-%2"),可以参看官方说明:
QString status = QString("Processing file %1 of %2: %3").arg(i).arg(total).arg(fileName);

“First, arg(i) replaces %1. Then arg(total) replaces %2. Finally, arg(fileName) replaces %3.”

也就是说QString("%1-%2")中的"%1"和"%2"分别对应a1的arg()和a2的arg()。

多个数值转QString的更多相关文章

  1. 14.QT-QFile文件,QBuffer缓冲区,QDir目录,QFileSystemWatcher文件系统监视

    QFile Qt中所有与IO相关的类都继承于QIODevice,继承图如下所示: 其中QFile类便是用于文件操作的类 在QT中,将文件当做一种特殊的外部设备对待(比如:串口,usb等就是外部设备) ...

  2. qt5--数据类型转换

    QString-->Char*        str.toUtf8().data() pointf=QPointF(point);       //将QPoint转换为QPointF point ...

  3. QString::arg()//用字符串变量参数依次替代字符串中最小数值

    QString i = "iTest";           // current file's number QString total = "totalTest&qu ...

  4. QT中将ASCII转换为对应数值的方法

    有时候需要将一段ASCII转换为数值进行传输(比如串口) QString str=codeEdit->toPlainText(); QVector<uint>v=str.toUcs4 ...

  5. QT QString 很全的使用 (转)

    QString, QByteArray, 和 QVariant这三个类和容器有许多相同之处,并且在一些情况下可以被当作特殊的容器. 同样,像容器,这些类使用隐式共享来优化内存和速度. 我们将从QStr ...

  6. QT QString类

    字符串有如下几个操作符 QString提供了一个二元的"+"操作符用于组合两个字符串,并提供了一个"+="操作符用于将一个字符串追加到另一个字符串的末尾,例如: ...

  7. QString 与 QByteArray笔记

    程序中在于外设打交到是常常会用到读硬件显示到控件,或是读控件写到硬件的情况,操作的最多的是字节流,所以肯定会用到QString 和QByteArray,下面测试一些常用的转换: #include &l ...

  8. Qt中实现将float类型转换为QString类型

    在使用Qt Creator编程时,难免会用到将float类型转换为QString类型的时候下面是我所有的方法: 1. 将QString类型转化为float类型,很简单 QString data; fl ...

  9. Qt532.数值转为16进制(并填充)

    ZC:QString::number(要转换的数值, 需要转换的目标进制); ZC:QString("%1").arg(要转换的数值, 需要填充到?位, 需要转换的目标进制, 用于 ...

随机推荐

  1. HDU1530 Maximum Clique dp

    正解:dp 解题报告: 这儿是传送门 又是个神仙题趴QAQ 这题就直接说解法辣?主要是思想比较难,真要说有什么不懂的知识点嘛也没有,所以也就没什么好另外先提一下的知识点QAQ 首先取反,就变成了求最大 ...

  2. Mirror--自增键在镜像中的影响

    测试环境: OS: Windows Server 2008 R2 Enterprise SQL: SQL Server 2012 Enterprise 测试场景: 有SERVER A上数据库 DB10 ...

  3. Django Rest Framework(2)-----序列化详解(serializers)

    REST framework中的序列化类与Django的Form和ModelForm类非常相似.我们提供了一个Serializer类,它提供了一种强大的通用方法来控制响应的输出,以及一个ModelSe ...

  4. android ReactNative之Cannot find entry file index.android.js in any of the roots

    android ReactNative之Cannot find entry file index.android.js in any of the roots 2018年04月02日 14:53:12 ...

  5. NPOI+反射+自定义特性实现上传excel转List及验证

    1.自定义特性 [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] public ...

  6. C语言的 32个关键之和9个控制语言之关键字

    auto   break  case  char  const  continue  default  do double  else  enum  extern  float for  goto  ...

  7. 1:3访问 servlet API 的两种方式(request,session等内置对象)

    1:解耦方式 2:耦合方式: ========================================== ========================================== ...

  8. 分页组件vue和jsp版本

    vue版本 <template> <div class="com-vscroll"> <slot name="mcontent"& ...

  9. zoj3820 树的直径+二分

    这题是个遗憾 !!!!!当时一直不敢相信两个站一定在直径上,赛后想想自己真的是脑袋抽风, 如果其中一个站不在直径上就反向的说明了这条不是直径.可以很明白我们可以肯定的是有一个点一定在直径上假如另外一个 ...

  10. python pytz 结合时区的日期操作

    有一个安排在2012 年12 月21 日早上9:30 的电话会议,地点在芝加哥.而朋友在印度的班加罗尔,那么他应该在当地时间几点参加这个会议呢? 对几乎所有涉及到时区的问题,你都应该使用pytz 模块 ...