Qt中QString与基本类型的转换问题
2015-04-16 13:44
309 查看
之前写过几篇文章,后来由于部分原因删除掉了,最近刚好希望在Qt方面写一点东西,方便大家查找,也希望大家可以相互关注,多做交流,我会坚持在今后的Qt的工作学习中,不断地更新遇到的技术问题与Qt的一些基础知识。
最近在编程时,遇到了一个问题,大致是一堆float类型的数据,需要转换为QDateTime类型,于是经过查阅文档,发现Qt中的一些基本的数据类型比如int, float, double 转换成QString类型是比较方便的,Qt的API会封装相关的方法,如果反向转换的话,需要自己手动编程。
在由int, float, double 这样的基本数据类型转换为QString的方法大致如下:
以int为例:
以float为例,或者:
在工作中,上述转换用的不是很多,大多数都是由QString类型转换到基本的数据类型使用的比较多,由于Qt的API有方法,所以用起来很简单,方法大致如下:
以转为float, double为例:
上面这种方法比较适合与科学计数法的表示:
需要注意的是,经常QString的内容转换成对应的基本数据类型是建立在QString的内容正确性的基础上进行的,
假设QString的内容是一个基本数据类型无法识别的情况下会导致转换错误,为了提高程序的健壮性,我们通常会在转换时加一个bool型的变量用于判断转换是否成功,用法如下:
以转int为例:
转换为QString后就可以进行QString与QDateTime进行转换了,转换的方法如下:
》》 QDateTime 转换为 QString
函数原型:QString QDateTime::toString ( Qt::DateFormat format = Qt::TextDate ) const
》》QString 转换为 QDateTime
函数原型:QDateTime QDateTime::fromString ( const QString & string, const QString & format ) [static]
最近在编程时,遇到了一个问题,大致是一堆float类型的数据,需要转换为QDateTime类型,于是经过查阅文档,发现Qt中的一些基本的数据类型比如int, float, double 转换成QString类型是比较方便的,Qt的API会封装相关的方法,如果反向转换的话,需要自己手动编程。
在由int, float, double 这样的基本数据类型转换为QString的方法大致如下:
以int为例:
int tmp = 125; QString str_a = QString::number(tmp, 10); // str_a == "125" 十进制 QString str_b = QString::number(tmp, 16).toUpper(); // str_b == "7D" 十六进制
以float为例,或者:
float tmpNum = 3.1415; QString str = QString("%1").arg(tmpNum); // str == "3.1415"
在工作中,上述转换用的不是很多,大多数都是由QString类型转换到基本的数据类型使用的比较多,由于Qt的API有方法,所以用起来很简单,方法大致如下:
以转为float, double为例:
QString str = "3.1415"; float toFloatValue = str.toFloat(); // toFloatValue == 3.1415 double toDoubleValue = str.toDouble(); // toDoubleValue == 3.1415
上面这种方法比较适合与科学计数法的表示:
double value = QString("1234.56e-03").toDouble(); // value == 1.23456
需要注意的是,经常QString的内容转换成对应的基本数据类型是建立在QString的内容正确性的基础上进行的,
假设QString的内容是一个基本数据类型无法识别的情况下会导致转换错误,为了提高程序的健壮性,我们通常会在转换时加一个bool型的变量用于判断转换是否成功,用法如下:
QString str = "HelloQt"; bool ok; float value = str.toFloat(&ok); //如果转换失败时 value == 0.0, 并且ok == false;
以转int为例:
Qstring str = "FF"; bool ok; int dec = str.toInt(&ok, 10); // dec==255 ; ok==true int hex = str.toInt(&ok, 16); // hex==255; ok==true;
转换为QString后就可以进行QString与QDateTime进行转换了,转换的方法如下:
》》 QDateTime 转换为 QString
函数原型:QString QDateTime::toString ( Qt::DateFormat format = Qt::TextDate ) const
QString str; QDateTime time; time = QDateTime::currentDateTime(); str = time.toString("yyyy-MM-dd hh:mm:ss"); // strBuffer = 2010-07-02 17:35:00
》》QString 转换为 QDateTime
函数原型:QDateTime QDateTime::fromString ( const QString & string, const QString & format ) [static]
QString str; QDateTime time; str = "2010-07-02 17:35:00"; time = QDateTime::fromString(strBuffer, "yyyy-MM-dd hh:mm:ss");
相关文章推荐
- Qt对象类型转换(char* int与Qstring间的转换)
- QT中基本类型的转换
- Qt中float类型与QString类型相互转换
- 基本数据类型转换问题
- 10_基本数据类型自动转换_强制转型_类型提升问题
- Java 基本数据类型转换问题
- Qt中QString的类型转换
- Qt中float类型与QString类型相互转换
- 基本类型的赋值、转换问题
- QT中QString与数字类型的转换
- qt 获取部分的cookie信息 如何把获取的cookie转换为QString类型 正则表达式
- 《Qt数据类型》--基本数据类型QByteArray,QString,char,byte之间的转换
- 两个有趣的关于java里基本类型转换的问题
- 一个比较愚蠢的办法,解决excel表,关于导出时间类型转换成QString的问题
- Java 基本数据类型与其包装数据类型以及字符串(String)之间的转换问题
- <Linux+Qt>char*,QString,String类型的相互转换
- Qt中实现将float类型转换为QString类型
- Qt中QString与int和double类型的转换
- Qt中实现将float类型转换为QString类型
- 关于基本数据类型转换的一个小问题