QT——数据转换(int/QString/QByteArray/char/string)等
目录
1. QString怎么转成int
2. int转QString
3. int转string
4. string转int
5. QString转string
6. string转QString
7. QByteArray转QString
8. QString转QByteArray
9. QByteArray 转化为 char *
10. char * 转化为 QByteArray
11.QString 转 char *
12. char*转QString
1. QString怎么转成int
QString str = "123";
int num = str.toInt(); // 将 QString 转换为 int
带返回值:
QString str = "123";
bool ok;
int num = str.toInt(&ok); // 将 QString 转换为 int,并通过 ok 来检测转换是否成功
if (ok) {
// 转换成功
} else {
// 转换失败
}
2. int转QString
//int转QString
//方法1
int a = 123456;
QString b;
b = QString::number(a,10,5);//QString::number(a,基底,精度)
//方法2,利用arg()
int a = 123456;
QString b = QString("%1").arg(a);
3. int转string
//int转string
int a = 123456;
string b;
b = std::tostring(a);
4. string转int
//string转int
string c = "123456";
int d;
d = atoi(c.c_str());//string转float 用 atof()
5. QString转string
//从QString 到 std::string
str = qstr.toStdString();
6. string转QString
//从std::string 到QString
qstr = QString::fromStdString(str);
7. QByteArray转QString
// QByteArray转QString方法1
QByteArray bytes("hello world");
QString string = bytes;
// QByteArray转QString方法2
QByteArray bytes("hello world");
QString string;
string.prepend(bytes);
8. QString转QByteArray
// QString转QByteArray方法1
QString str("hello");
QByteArray bytes = str.toUtf8();
// QString转QByteArray方法2
QString str("hello");
QByteArray bytes = str.toLatin1();
9. QByteArray 转化为 char *
//QByteArray 转化为 char *
//data()返回一个指针,指向存储在字节数组中的数据。指针可用于访问和修改组成数组的字节。
//数据以“\0”结束,即对于“\0”结束符,返回字符串中的字节数为size() + 1。
QByteArray ba("Hello world");
char *ch = ba.data(); //ch是指针
10. char * 转化为 QByteArray
char *ch = "Hello world";
QByteArray ba = QByteArray(ch); //直接使用QByteArray()构造
11.QString 转 char *
QString str("Hello world");;
char* ch;
QByteArray ba = str.toLatin1(); // QString::toLatin1() 时会在字符串后面加上'\0'
ch=ba.data();
12. char*转QString
//方法一:
char* str;
QString string(str);
//方法二:不重新定义对象
inline QString charToQstring(char* charPara)
{
return QString(QLatin1String(charPara));
}