QT数据类型转换篇
1、 int ,float ,double类型转换为QString
//int转换为QString 方法一
int temp = 123;
QString str = QString::number(temp, 10);
//int转换为QString 方法二
int temp = 123;
QString str = QString("%1").arg(temp);
//float转换为QString
float temp = 3.1;
QString str = QString("%1").arg(temp);
//double转换为QString
double temp = 3.14;
QString str = QString("%1").arg(temp);
2、QString转换为int,float,double类型
//QString转换为int类型
Qstring str="FF";
bool ok;
int dec = str.toInt(&ok,10);
int hex = str.toInt(&ok,16);
//QString转换为float类型
QString str = "3.1";
bool ok;
float val = str.toFloat(&ok);
//QString转换为double类型
QString str = "1234.56";
bool ok;
double val = str.toDouble(&ok);
注:ok表示转换是否成功,成功则ok为true,失败则ok为false。
3、QString转换为QByteArray
// QString转QByteArray 方法一
QString str("hello");
QByteArray bytes = str.toUtf8();
// QString转QByteArray 方法二
QString str("hello");
QByteArray bytes = str.toLatin1();
4、QByteArray转换为QString
// QByteArray转QString 方法一
QByteArray bytes("hello world");
QString str = QString(bytes);
// QByteArray转QString 方法二
QByteArray bytes("hello world");
QString str;
str.prepend(bytes);
5、QByteArray转换为char *
QByteArray byte;
char* str = byte.data();
6、char *转换为QByteArray
char* str = "abc";
QByteArray byte(str);
7、QString转换为char *
//QString -> c++ string -> char *
QString str = "abc";
str.toStdString().data();
8、char *转换为QString
char *str = "abc";
QString string(str);
9、QDateTime转换为QString
QString str;
QDateTime time;
time = QDateTime::currentDateTime();
str = time.toString("yyyy-MM-dd hh:mm:ss");
10、QString转换为QDateTime
QString str;
QDateTime time;
str = "2020-07-02 17:35:00";
time = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");