QT学习-数据类型转换


前言

本文主要记录QT中常用数据类型转换。
持续更新...


一、num转QString

int num = 123456;
double num_f = 12.3456789;
QString num_string = QString::number(num);
QString num_f_string = QString::number(num_f,'f',7);//显示7位小数,不添加7时默认显示6位小数

转换后:
num_string = “123456”;
num_f_string =“12.3456789”;

二、数据输出格式

int num = 123456;
qDebug()<<"dec output:"<<QString().sprintf("%d",num);//十进制
qDebug()<<"hex output:"<<QString().sprintf("%x",num);//十六进制小写
qDebug()<<"HEX output:"<<QString().sprintf("%X",num);//十六进制大写

输出:
dec output: 123456
hex output: 1e240
HEX output:1E240

三、QString拆分到QStringList

1.去除空格拆分

QString read_data_string;
QStringList read_data_stringlist;
read_data_stringlist = read_data_string.split(" ");

read_data_string = “12 34 56 78 90”;
拆分后:
read_data_stringlist.at(0) = 12;
read_data_stringlist.at(1) = 34;
read_data_stringlist.at(2) = 56;
read_data_stringlist.at(3) = 78;
read_data_stringlist.at(4) = 90;

2.按固定长度拆分

QString num_string = "123456";
QStringList num_stringList;
while (num_string.length()) {
    num_stringList.append(num_string.mid(0,2));//从第0个字符开始,拆分长度为2
    num_string.remove(0,2);
}

拆分后:
num_stringList.at(0) = “12”;
num_stringList.at(0) = “34”;
num_stringList.at(0) = “56”;

四、QStringList转QByteArray(HEX)

QStringList read_data_stringlist;
QByteArray read_data;

for (quint16 i=0; i<read_data_stringlist.length(); i++) {
    read_data[i] = read_data_stringlist.at(i).toInt(nullptr, 16);
}

五、uint8_t与QByteArray互转

1.uint8_t转QByteArray

uint8_t data[8] = {1,2,3,4,105,206,117,118};
QByteArray b_data((const char *)&data,8);

2.QByteArray转uint8_t

QByteArray ba("abcd");
char *pData = ba.data();

六、QByteArray显示为HEX并插入空格

QByteArray arr;
arr.append(0x01);
arr.append(0x02);
arr.append(0x03);
arr.append(0x04);
qDebug() << arr.toHex(' ').toUpper();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值