1、QLineEdit设置背景提示文字
ui.lineEdit->setPlaceholderText(tr("搜索工具"));
2、QLineEdit添加搜索图标或其他背景图标
QAction* action = new QAction(this);
action->setIcon(QIcon(":/Resource/image/searchToolWhite.png"));
ui.lineEdit->addAction(action, QLineEdit::LeadingPosition);
3、QTreeWidget结合QLineEdit搜索并只显示对应QTreeWidgetItem
void ToolBoxWidget::on_lineEdit_textEdited(const QString& text)
{
if (text.isEmpty())
{
QTreeWidgetItemIterator it(ui.treeWidget);
while (*it)
{
(*it)->setHidden(false);
++it;
}
}
else
{
QList<QTreeWidgetItem*> itemsList = ui.treeWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive, 0);
QTreeWidgetItemIterator it(ui.treeWidget);
while (*it)
{
if (itemsList.contains((*it)))
{
(*it)->setHidden(false);
QTreeWidgetItem* item = *it;
while (item->parent())
{
item->parent()->setHidden(false);
item = item->parent();
}
}
else
{
(*it)->setHidden(true);
}
++it;
}
}
}