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

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

一、简介

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

QListWidget类提供了一个基于项(QListWIdgetItem)的列表控件,它拥有属于自己的界面。当然,照我们之前说的,它也继承与QWidget类。
其界面显示如下图:
在这里插入图片描述

二、基本操作

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类:)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葛狂的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值