2015-04-17 27 views
4

如何通過文本在QTreeWidgetItem中查找項目?有沒有QTreeWidget的findItem方法的類比?QTreeWidgetItem通過文本查找孩子

+0

你的意思是在QTreeWidgetItem兒童的列表中找到項目? – Ashot

+0

@Ashot,是的,我想通過文本查找項目 – user3514538

+2

好像在QTreeWidgetItem中沒有模擬方法。無論如何,你可以迭代項目的孩子,找出你想要的文字。 – Ashot

回答

7

我相信你正在尋找的是在QTreeWidget中的遞歸搜索。爲此,您將不得不使用Qt::MatchContains | Qt::MatchRecursive作爲標誌的組合。

所以,如果pMyTreeWidget是指向你QTreeWidget並會將myText是QString包含要搜索的文本,假設搜索必須是在列0,代碼看起來類似:MatchExactly

QList<QTreeWidgetItem*> clist = pMyTreeWidget->findItems(myText, Qt::MatchContains|Qt::MatchRecursive, 0); 
foreach(QTreeWidgetItem* item, clist) 
{ 
    qDebug() << item->text(0); 
} 

如果你的要求是相匹配的確切的文本,那麼你可以使用Qt::MatchExactly|Qt::MatchRecursive代替Qt::MatchContains|Qt::MatchRecursive