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. android中的验证码倒计时

    1.如图所示,要实现一个验证码的倒计时的效果                             2.实现 图中获取验证码那块是一个button按钮 关键部分,声明一个TimeCount,继承自C ...

  2. formset批量处理form表单数据

    Formset(表单集)是多个表单的集合.Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据 class StudentStudyRecordModel( ...

  3. php://input、$_POST与$GLOBALS['HTTP_RAW_POST_DATA']三者的区别

    $_POST 只有Coentent-Type的值为application/x-www.form-urlencoded和multipart/form-data两种类型时,$_POST才能获取到数据. $ ...

  4. gerrit上sshkey设置问题

    gerrit里面设置ssh的方法  http://blog.sina.com.cn/s/blog_4d4bc1110101dbxs.html `ssh-keygen -t dsa -b 1024` d ...

  5. flask 上下文管理 &源码剖析

    基本流程概述 - 与django相比是两种不同的实现方式. - django/tornado是通过传参数形式实现 - 而flask是通过上下文管理, 两种都可以实现,只不实现的方式不一样罢了. - 上 ...

  6. keras实现不同形态的模型

    keras提供了Sequential线性的模型,但是有些网络需要多个输入,有些网络有多个输出,更甚之层与层之间有内部分支,这使得网络看起来像是层构成的图,而不是线性的堆叠.有些场景需要多模态的输入,这 ...

  7. Spring—切点表达式

    摘要: Spring中的AspectJ切点表达式函数 切点表达式函数就像我们的GPS导航软件.通过切点表达式函数,再配合通配符和逻辑运算符的灵活运用,我们能很好定位到我们需要织入增强的连接点上.经过上 ...

  8. chrome不能安装adblock插件

    csdn简直就是个垃圾,名字山寨MSDN不说,一个页面数还十个广告.国人还这么多人捧,真是醉了.博客的话还是博客园,简洁,一切为了技术. 既然csdn是个垃圾,那么看部分文章时怎么少得了广告屏蔽插件a ...

  9. Python3基础 raise + 指定类型异常+异常的解释 产生特定类型异常

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  10. HDU 4745 Two Rabbits(最长回文子序列)

    http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有一个环,现在有两只兔子各从一个点开始起跳,一个沿顺时针,另一个沿逆时针,只能在一圈之内跳,并且每 ...