【QT基础教程 十二】QListWidget类解析

概要:本期介绍QListWidget类的使用,包含QListWidget如何添加项、删除项、遍历等操作。

一、简介

头文件:#include
模块:QT += widgets
父类:QListView

QListWidget类提供了一个基于项(QListWIdgetItem)的列表控件,它拥有属于自己的界面。当然,照我们之前说的,它也继承与QWidget类。
其界面显示如下图:
【QT基础教程 十二】QListWidget类解析_第1张图片

二、基本操作

1.初始化
//方式一:
QListWidget *listWidget = new QListWidget(this);

//方式二:
//通过UI设计师界面,拖拽一个List Widget部件到界面。
ui->listWidget->setParent(this);
2.添加项
//1.addItem(QString& strTest);//直接传入QString文本信息
ui->listWidget->addItem(QStringLiteral("item1"));

//2.addItem(QListWidgetItem *item);//传入QListWIdgetItem指针对象,
//QlistWidgetItem不仅可以传入文本信息,还可以传入图片信息。
QListWidgetItem *item = new QListWidgetItem(QIcon(":/img/icon"),QStringLiteral("item2"));
ui->listWidget->addItem(item);

//3.insertItem(int row,QListWidgetItem *item);//将item插入指定行
QListWidgetItem *item2 = new QListWidgetItem;
item2->setText("item2");
ui->listWidget->insertItem(0,item2);

//4.addItem(QListWidgetItem)和setItem(QWidget)结合的方式,实现QListWIdgetItem中嵌入窗口布局。
QWidget *widget = new QWidget(this);
QListWidgetItem item = new QListWidgetItem;
item->setSizeHint(widget->size());
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item,widget);
3.删除项
//1.takeItem(int row);//删除并返回指定行的QListWIdgetItem
QLisWidgetItem *item  = ui->listWidget->takeItem(0);

//2.removeItemWIdget(QListWidgetItem *item);//删除指定项以及指定项内的窗口对象
ui->listWidget->removeItemWidget(item);
4.过滤项
//1.findItems(const QString &text,Qt::MatchFlags)const//返回复合条件的QListWIdgetItem对象
QList<QListWidgetItem *> list = ui->listWidget->findItems("item1");
5.大小、长度
//count()
int len = ui->listWidget->count();
6.获取当前项
//1.item(int row)const//返回指定行的QListWidgetItem对象
QListWidgetItem *item = ui->listWidget->item(0);
 
 //2.currentItem()const//返回当前位置的QListWidgetItem对象
QListWidgetItem *item = ui->listWidget->currentItem();
7.排序
//1.sortItems(Qt::SortOrder order = Qt::AscendingOrder)
//默认升序(按照字典序排序),Qt::DescendingOrder 降序
ui->listWidget->sortItems();
8.获取子项中的窗口
//itemWidget(QListWidgetItem *item)
QWidget *widget = ui->listWidget->itemWidget(item);

三、遍历

QListWidget每行只存在一个QListWidgetItem对象,行数等于项的数量等于QListWidget的大小

QListWidget *listWidget = new QListWidget(this);
//方式一:
int len = listWidget->count();
for(int i = 0;i < len;i ++)
{
	QListWidgetItem *item = listWidget->currentItem();
	QString text = item->text();
}
//方式二:
foreach(QListWidgetItem* var,listWidget)
{
	QString text = var->text();
}

结尾:本期关于QListWidget类的讲解就到这,下期我们学习QListView类:)

你可能感兴趣的:(#,QT,基础教程,qt,ui,开发语言)