一、代码部分
.cpp声明
#include <QListWidget>
#include <QListWidgetItem>
槽函数(当lineEdit文本发生变化时通过文本筛选item)
void Select_Window::on_lineEdit_textChanged(const QString &arg1)//输入型号进行模糊筛选
{
//读取lineEdit中的用于搜索的文本
QString searchtext = ui->lineEdit->text();
//遍历listwidge所有item,并隐藏
for(int i = 0; i < ui->listWidget->count(); ++i) //listWidget->count()获取item总数
{
ui->listWidget->item(i)->setHidden(true); //隐藏当前项
}
//再次遍历listwidge所有item,并根据筛选文本判断是否显示
for (int i = 0; i < ui->listWidget->count(); ++i)
{
QListWidgetItem *item = ui->listWidget->item(i); //item指向当前项
if (item->text().contains(searchtext, Qt::CaseInsensitive)) //当前项是否包含搜索文本
{
ui->listWidget->item(i)->setHidden(false); //如果包含就取消隐藏
}
}
}
二、效果展示
1.如图所示有lineEdit和Listwidge两个控件,刚打开时Listwidge会将所有项目显示出来。
2.lineEdit输入内容进行模糊搜索,会发现Listwidge只会所显示包含搜索文本的项目(item)。
3.最后清空搜索文本会重新显示所有item项目。