zoukankan      html  css  js  c++  java
  • 多个数值转QString

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

    1. 用QTextStream

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

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

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

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

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

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

    QString    arg(const QString & 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
    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(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(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(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(QChar a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const
    QString    arg(char a, int fieldWidth = 0, QChar fillChar = QLatin1Char( ' ' )) const
    QString    arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, QChar fillChar = QLatin1Char( ' ' )) const

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

    int a1 = 123;
    int a2 = 38;
    QString strData = QString("%1-%2").arg(a1, 3, 10, QChar('0')).arg(a2, 3, 10, QChar('0'));
    这样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()。
  • 相关阅读:
    C++ string用法
    C++ 静态变量及函数的生命周期
    C++ const的用法和作用
    C++ 指针和引用的区别
    C++ struct 和 Class的区别
    C++对象模型-构造函数语意学
    大端模式与小端模式、网络字节顺序与主机字节顺序
    Spring Boot系列——Spring Boot如何启动
    分库分表利器——sharding-sphere
    并发和多线程-八面玲珑的synchronized
  • 原文地址:https://www.cnblogs.com/loongfee/p/3370573.html
Copyright © 2011-2022 走看看