前言
上一节已经成功创建了一个Qt项目,接下来就是要在创建好的项目中,添加自己想要的功能。在写代码之前,我们需要掌握Qt的一些基础知识。
语法部分就不用讲了,这系列文章是对有C或C++语言基础的同学展开的,如果一点编程基础都没有的同学,也可以在后续实操文章中,跟着文章一点一点学习和积累语法知识。
和C/C++不同的是,Qt封装了一些自己的基本数据类型和方法。所以我们要想进行Qt编程,就要先掌握一些基本的数据类型,以及它们的使用方法,这在我们后续编程中会用到。
还有一点要说明的是,在Qt项目开发过程中,C++提供的数据类型还有一些系统函数都是可以使用的,只要包含对应的头文件就可以了。但是当我们在使用Qt提供的方法时,它的参数类型很多都是Qt的一些基本数据类型,所以我们还是要掌握的。
QByteArray
QByteArray是字符数组类,字节数组类是一个提供字节数组的类,它可以一位一位的访问数组中的字符。
它可以对应char*这个类去学习。QByteArrary这个类经常在串口通信中使用,因为串口通信数据都是一个一个的8位字节流,所以使用QByteArray就很方便。对于QByteArray的操作,主要需要掌握的操作有以下几种。
直接上代码:
初始化
QByteArray ba("Hello"); // "Hello"
或
QByteArray ba;
ba.resize(5);
ba[0] = 'H';
ba[1] = 'e';
ba[2] = 'l';
ba[3] = 'l';
ba[4] = 'o'; // "Hello"
或
QByteArray ba;
ba.fill('O', 2);// "OO"
//初始化时重点注意QByteArray的大小,和每一位的赋值。
访问某个元素
QByteArray ba("Hello");
qDebug() << ba[0]; // "H"
或
qDebug() << ba.at(1); // "e"
//访问某个元素时重点注意取得位数是否正确,第一位对应的值为0。
截取字符串
QByteArray x("Pineapple");
QByteArray y = x.left(4);// y=="Pine"
或
QByteArray y = x.right(5); // y=="apple"
或
QByteArray y = x.mid(4,3); // y=="app"
QByteArray y = x.mid(4); // y=="apple"
//用mid方法从字符串中间截取时,第一个参数是起始位置,索引值从0开始;
//第二个参数是截取的位数,如果不写第二个参数,就会一直截取到最后。
获取字节数组的大小
QByteArray ba("Hello");
int n = ba.size(); // n==5
i