概要:本期介绍QListWidget类的使用,包含QListWidget如何添加项、删除项、遍历等操作。
一、简介
头文件:#include<QListWidget>
模块:QT += widgets
父类:QListView
QListWidget类提供了一个基于项(QListWIdgetItem)的列表控件,它拥有属于自己的界面。当然,照我们之前说的,它也继承与QWidget类。
其界面显示如下图:
文章来源:https://www.toymoban.com/news/detail-543936.html
二、基本操作
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的大小文章来源地址https://www.toymoban.com/news/detail-543936.html
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基础教程 十二】QListWidget类解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!