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进制
以上两个就是最常见的输出。

个人学习的经验,如若有误,欢迎留言讨论!

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值