0


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

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

一、简介

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

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

二、基本操作

1.初始化
//方式一:
QListWidget *listWidget =newQListWidget(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 =newQListWidgetItem(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 =newQWidget(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 =newQListWidget(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 ui 开发语言

本文转载自: https://blog.csdn.net/wddkxg/article/details/129238193
版权归原作者 努力学技术的水果店老板 所有, 如有侵权,请联系我们删除。

“【QT基础教程 十二】QListWidget类解析”的评论:

还没有评论