一、十进制数和十六进制数相互转换
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());