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. 解决li中文字行高对齐

    <div class="A_content_1"> <li>座右铭: <input class="A_ct1" type=&quo ...

  2. SpringCloud 进阶之Hystrix(断路器)

    1. Hystrix 断路器 Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败, 比如超时,异常等,Hystrix能够保证在一个依赖出问题的情况 ...

  3. JS对话框

    提示: alert("我是好人"); 确定,取消 if(confirm("我是好人?")){ alert("确定"); }else{ ale ...

  4. mysql查询表和字段的注释

    1,新建表以及添加表和字段的注释.   create table t_user(        ID INT(19) primary key auto_increment  comment '主键', ...

  5. 常微分方程初值问题:多步预测-修正方法 [MATLAB]

    #先上代码后补笔记# #可以直接复制粘贴调用的MATLAB函数代码!# 1. 亚当斯(Adams)预测-修正算法 由亚当斯-巴什福特(Adams-Bashforth)显式预测公式和亚当斯-莫顿(Ada ...

  6. 121. Best Time to Buy and Sell Stock(股票最大收益)

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  7. "字节跳动杯"2018中国大学生程序设计竞赛-女生专场 Solution

    A - 口算训练 题意:询问 $[L, R]$区间内 的所有数的乘积是否是D的倍数 思路:考虑分解质因数 显然,一个数$x > \sqrt{x} 的质因子只有一个$ 那么我们考虑将小于$\sqr ...

  8. uva11404

    这题说的是给了一个长度为n的字符串(1000)求最长回文子序列,并输出当str[i]==ste[j]时dp[i][j]=dp[i+1][i-1]+2 否则 dp[i][j]=Max(dp[j+1][i ...

  9. cookie的存取删

    存: document.cookie = "name=Kevin;expires="+new Date().getDate()+7; //有效期7天 取: function Get ...

  10. PHP Fatal error: Uncaught Error: Call to undefined function pcntl_fork().. 开启php pcntl扩展实现多进程

    在使用函数pcntl_fork()时报错  Fatal error: Uncaught Error: Call to undefined function pcntl_fork()....,原因是没有 ...