文章目录
- 前言
- 一、QString与std::string
- 二、QString与int
- 三、QString与double
- 四、QString与char*
- 五、大小端转换
前言
本文涉及QString转int、QString转std::string、QString转double、QString转char*及大小端转换
一、QString与std::string
QString qstr = "你好!";
std::string stdstr = qstr.toStdString(); // QString 转 标准string
QString qstr2 = QString::fromStdString(stdstr); // 标准string 转 QString
二、QString与int
// int 转 QString
QString qstr = QString::number(123); // QString 转 int
int i = atoi(qstr.toStdString().c_str()); // 方法1
int i = qstr.toInt(); // 方法2
bool ok; // 方法3
int i = qstr.toInt(&ok); // ok为true表示成功,false表示失败
三、QString与double
// double 转 QString
double a = 123.123456;
QString str = QString::number(a, "f", 6);// 非科学计数法,小数点后保留6位小数// QString 转 double
QString str = "123.123456";
double c = str.toDouble();
四、QString与char*
// QString 转 char*
QString qstr = "你好!";
std::string str = qstr.toStdString();
const char *ch = str.c_str();// char* 转 QString
char* ch = new char[len+1]
memset(ch, 0, len+1);
QString test = QString(QLatin1String(ch));
五、大小端转换
#include <QTEndian>
// 网络传输一般要转换为大端
unsigned short header = qToBigEndian((unsigned short)0xAA55); // 转换为大端
unsigned short header = qToLittleEndian((unsigned short)0xAA55); // 转换为小端