我正在使用带有图标和字符串数据的QTreeWidget。
现在我使用自己的过滤功能通过QTreeWidget::findItems功能过滤掉字符串,效果非常好。
但是,如何通过图标过滤/ findItems?
Qt findItems函数只能输入字符串作为输入...
有什么建议吗?
答案 0 :(得分:0)
试试这个:
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;
}