QByteArray 的使用方法与技巧

QByteArray 的使用方法与技巧

最近做了个芯片烧录的上位机,因为功能设计到串口连续数据读取打包解析等内容,需要用到 QByteArray,且存着原始二进制数据。关于 QByteArray 的详细介绍,有空可以阅览一下 Qt 的 help,这里记录下常用的相关操作,方便使用查阅用法。

访问与赋值访问数据有四种方式, [] at() data[] constData[],其中 [] 和 at 为可读可写,at 和 constData[] 为只读,因此访问效率最高。

在末尾追加字符数据QByteArray a("free");

QByteArray b("dom");

a.append(b);

还有 a+=b,听导师说这样会有拼接遗漏数据的可能?还有 memcpy 拷贝的方法,虽然我没试成功过。

查找某个字符的位置indexOf,返回对应数字的第一个位置。

QByteArray a("abcd");

int c = a.indexOf('b');

从左向右截取字符串QByteArray a("pineapple");

QByteArray b = a.left(4);

b = "pine";

从右向左截取字符串QByteArray a("pineapple");

QByteArray b = a.right(5);

b = "apple";

截取部分字符串QByteArray a("hello world");

QByteArray b = a.mid(6,3); //第一个参数代表从哪里开始,0对应h,5对应空格,第二个参数代表开始后多少长度

b = "wor";

QByteArray c = a.mid(6); //一个参数就只代表从哪里开始,截取剩下所有内容。

c = "world";

删除某段字符QByteArray a("hello world);

a.remove(6,3);

a = "hello ld";

这个讲道理和截取左右字符串是不是互补关系呢?如果是的话效率是一样的吗?有待观察验证。

指定位置插入字符串QByteArray a("helloworld");

a.insert(5,QByteArray(" "));

a = "hello world";

字符替换QByteArray a("GoodBye world");

QByteArray b("hello");

a.replace(0, 7, b); // 0表示从第0个字符开始,7表示替换长度为7的内容,b表示替换的内容,长度可以不同。

a = hello world;

Leader教的转换方法QByteArray a = QSerialPort.readAll();

QString tt = a.toHex();

QByteArray tt2 = QByteArray().fromHex(tt.toLatin1());

这里需要好好学习下各个函数的作用,列出来,不然直接copy拿去用就好。

参考资料:QByteArray常见使用方式:https://blog.csdn.net/weixin_38931060/article/details/117992884?spm=1001.2014.3001.5502QT中常见QByteArray,QString,char,10进制,16进制之间转换:https://blog.csdn.net/weixin_38931060/article/details/117994816?spm=1001.2014.3001.5502

相关文章

爱奇艺观影券怎么查看
官网体育在线365

爱奇艺观影券怎么查看

07-25 9106
pop字体入门指南—新手白皮书
365娱乐游戏是哪个公司

pop字体入门指南—新手白皮书

08-24 4507
'噉样'在粤语广东话是什么意思
365娱乐游戏是哪个公司

'噉样'在粤语广东话是什么意思

09-03 4530
怎么注销163邮箱账号
365娱乐游戏是哪个公司

怎么注销163邮箱账号

06-27 2405
carlife车机版
365娱乐游戏是哪个公司

carlife车机版

09-06 4734
what...think of...句型结构分析
365娱乐游戏是哪个公司

what...think of...句型结构分析

07-27 6316
危机合约
365娱乐游戏是哪个公司

危机合约

08-16 5549