QTreeWidget findItems或按图标筛选
我正在使用带有图标和字符串数据的QTreeWidget 现在我正在使用我自己的过滤函数通过函数过滤掉字符串,效果非常好 但是,如何通过图标过滤/查找数据项 Qt findItems函数只能获取字符串作为输入 有什么建议吗?试试这个:QTreeWidget findItems或按图标筛选,qt,filter,qtreewidget,Qt,Filter,Qtreewidget,我正在使用带有图标和字符串数据的QTreeWidget 现在我正在使用我自己的过滤函数通过函数过滤掉字符串,效果非常好 但是,如何通过图标过滤/查找数据项 Qt findItems函数只能获取字符串作为输入 有什么建议吗?试试这个: QTreeWidgetItem* findByIcon( QTreeWidget* aTreeWidget, const QIcon& aIcon, const int aColumn = 0 ) { QTreeWidgetItemIterator
QTreeWidgetItem* findByIcon( QTreeWidget* aTreeWidget, const QIcon& aIcon, const int aColumn = 0 )
{
QTreeWidgetItemIterator iterator( aTreeWidget );
while ( *iterator )
{
if ( (*iterator)->data( aColumn, Qt::DecorationRole ) == aIcon )
{
return (*iterator);
}
++iterator;
}
return nullptr;
}
这只会找到第一个匹配项,够了吗
如果没有,则这里有一个函数,用于查找具有给定图标的所有项目:
QList< QTreeWidgetItem* > findByIcon( QTreeWidget* aTreeWidget, const QIcon& aIcon, const int aColumn = 0 )
{
QList< QTreeWidgetItem* > items;
QTreeWidgetItemIterator iterator( aTreeWidget );
while ( *iterator )
{
if ( (*iterator)->data( aColumn, Qt::DecorationRole ) == aIcon )
{
items << (*iterator);
}
++iterator;
}
return items;
}