QTreeWidget搜索功能---遍历QTreeWidget

1、需求:查找QTreeWidget中满足条件的QTreeWidgetItem显示,不满足条件的隐藏

2、接口QTreeWidgetItem::setHidden(bool),  true为隐藏,false为显示

void OnFindItem(const QString &qsFilter)
{
    QTreeWidgetItemIterator it(ui->treeWidget);
    while (*it) 
    {    
        //QTreeWidgetItem是否满足条件---这里的条件可以自己修改
        if((*it)->text(0).contains(qsFilter))
        {
            (*it)->setHidden(false);
            QTreeWidgetItem *item = *it;
            //显示父节点
            while (item->parent())
            {
                item->parent()->setHidden(false);
                item = item->parent();
            }
        }
        else
        {
             //不满足满足条件先隐藏,它的子项目满足条件时会再次让它显示
            (*it)->setHidden(true);
        }
        ++it;
    }
}

你可能感兴趣的:(QT,遍历QTreeWidget,QTreeWidget搜索)