27Янв/120
Слот. Поиск по QTreeWidget.
Поиск работает только в одноуровневом дереве по первому столбцу.
void MyClass::find(QString aFindString)
{
int childCount = tree->invisibleRootItem()->childCount();
if(aString != "")
{
QList <QTreeWidgetItem *> findList = tree->findItems(aFindString, Qt::MatchContains, 0);
for(int i = 0; i < childCount; i++)
{
tree->invisibleRootItem()->child(i)->setHidden(true);
}
int findListSize = findList.size();
for(int j = 0; j < findListSize; j++)
{
findList.at(j)->setHidden(false);
}
}
else
{
for(int i = 0; i < childCount; i++)
{
tree->invisibleRootItem()->child(i)->setHidden(false);
}
}
}
Коннектим так:
QLineEdit *findEdit = new QLineEdit(this); connect(findEdit,SIGNAL(textEdited(QString)),this,SLOT(find(QString)));