Qt学习系列之有关QByteArray的学习
啰嗦
在 Qt中特别常见的一种数据类型,制作串口的过程中,关于数据的传输,使用到QByteArray比较多,所有有一点使用的心得,分享一下。
QByteArray的串口数据获取
在串口中,接收数据程序如下:
QByteArray reciv_array = global_port.readAll();
reciv_array的数据类型是QByteArray
global_port是之前定义的串口,定义的串口如下:
QSerialPort global_port;
.readAll();就是相对于global_port串口自带的函数,是获取串口传来的数据。
QString转QByteArray
QString data = ui->lint_send_data->text();
QByteArray array = data.toLatin1();//QString--->QByteArray
global_port.write(array);
data是通过ui中的部件获得的,其数据类型是QString
ui->lint_send_data是ui窗口指向的窗口中的某一部件
QByteArray array = data.toLatin1();是QString—>QByteArray
global_port.write(array);是向串口里写入数据
QByteArray的常见使用
QByteArray.mid()
QByteArray array;
data=array.mid(0,4);
定义了一个QByteArray类型的array,截取array中的特定长度的字符。
mid(起始字符,截取的字符长度)
QByteArray.at()
QByteArray.at(i);
.at(表示取QByteArray中的第几个)
QByteArray的输出
bool ok;
data=array.mid(0,4).toUInt(&ok,16);
例如:array是0x01 0001 0001,上述取的就是0x01,但是由于有.toUInt(&ok,16)
,所以显示的就是int类型,就是1
data=array.mid(0,4).toHex();
例如:array是0x01 0001 0001,上述取的就是0x01,因为.toHex()就是取16进制
以上两个就是最常见的输出。
个人学习的经验,如若有误,欢迎留言讨论!