QT学习之 ---进制之间的转换,QString、char[]相互转换,界面的QString转换成报文

一、十进制数和十六进制数相互转换
1.十进制转十六进制:

QString("%1H").arg(m_interactiveInfoList.at(number).FrameType(),2, 16, QLatin1Char('0')).toUpper();
m_interactiveInfoList.at(number).FrameType():返回值是uint_8类型  
2:两位  
16:十六进制 
QLatin1Char('0'):数不够两位则补零 
toUpper():全部大写

int dec = 100;
QString hex = QString("%1").arg(dec, 4, 16, QLatin1Char('0'));  // 保留四位,不足补零



2.十六进制转十进制:
bool ok;
QString hex = 16;
int dec = hex.toInt(&ok, 16);

二、界面的QString转换成报文(界面的时间转成报文格式)

1.界面的时间转成报文
QDateTime time = QDateTime::fromString(ui->lineEdit_time->text(), "yyyy-MM-dd hh:mm:ss");
uint32_t itime = (uint32_t)time.toSecsSinceEpoch();
此时itime就是转成的报文

三、Qt QString、char[]相互转换

1 .QString 转char[]

char* ptr;
 QByteArray ba;
 QString str = ui->namelineEdit->text();
 ba = str.toLatin1();//变成QByteArray
 ptr = ba.data();
 memcpy(p->name,ptr,10);        
//就是这一句,必须加,不然不只是把指针指向了值,并没有赋值



2. char[] 转QString

QByteArray bytes;
bytes.append(cs->items().at(i).configName, 6);
model.pname = QString(bytes.data());

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值