提示:本文为学习记录,若有错误,请联系作者,谦虚受教。
文章目录
前言
少一点预设的幻想,那份对人的关心会更自在。
一、QList
QList是一种常用的容器,存储了给定类型的数值,采用索引方式访问,内部是以数组形式来存储。
二、QList的用法
1.定义QList变量
QList<QString>listtest;
2.插入数据
listtest <<"1"<<"2";
3.重新赋值
if(listtest[0] =="1")
{
listtest[0]=="3";
}
4.替换元素
listtest.replace(1,"4");//替换第二个元素为4
5.输出指定元素
qDebug()<<listtest.at(1);//打印出第2个元素
6.添加元素
1、在列表头部添加元素
listtest.prepend("5");
2、在列表尾部添加元素
listtest.append("5");
7.删除元素
listtest.takeAt(1);//删除第二个元素
8.在指定位置插入项目
listtest.insert(1,"6");//在位置1插入6
9.交换元素
listtest.swap(1,5);//交换项目1,5
10.打印整个列表
qDebug() << "the list is: ";
for(int i=0; i<listtest.size(); ++i)
{
qDebug() << listtest.at(i); // 现在列表
}
三、QList的应用
1.导出表格
在需要导出表格数据时,可将读取到的数据写入到QList中,用到QList中的数据时,利用索引查询数据。
但要注意不能越界,否则程序会崩溃。
例子:
- 定义QList
QList<QString> allRowData1;
- 添加数据
QString str = QString::number(double(fCO2PPM),'f',1);
allRowData1.append(str);
- 数据写入表格中
int number = allRowData1.size();//数据大小
for(int i=0;i<number;i++)
{
int j=1;
xlsx.write((2+i),j++,allRowData1.at(i),Format1);
}
- 清除QList中的内容
allRowData1.clear();
2.错误操作
当i<number+1时,出现如图错误,显示QList越界。是因为当i=number时,即是allRowData1.at(i)不存在,查找不到此元素,出现了越界。
int number = allRowData1.size();
for(int i=0;i<number+1;i++)
{
int j=1;
xlsx.write((2+i),j++,allRowData1.at(i),Format1);
}
总结
善于总结,多进一步。