如何通过名称获取QListWidget中的项目?

12

我有一个使用PyQt在Python中显示名称列表的QListWidget。如何获取给定名称的QListWidgetItem

例如,如果我有以下具有4个项目的QListWidget,如何获取包含文本= dan的项目?

QListWidget

3个回答

19

Python等效于vahancho的答案:

items = self.listWidgetName.findItems("dan",Qt.MatchExactly)

if len(items) > 0:

    for item in items:
        print "row number of found item =",self.listWidgetName.row(item)
        print "text of found item =",item.text() 

谢谢,这对我很有帮助。 - answerSeeker
2
Qt.MatchExactly位于QtCore中,因此如果没有导入所有QtCore,则为QtCore.Qt.MatchExactly。 - nspo
你好,我可以问一下Qt.MatchExactly的相反之处吗?比如说你要找"丹尼",但是还有一个"丹"在里面,这样也算匹配成功...我想Qt应该有这个功能,但我不知道怎么做..你试过了吗?谢谢。 - Ice Bear

7
您可以使用 QListWidget::findItems() 函数。例如:
QList<QListWidgetItem *> items = listWidget->findItems("dan", Qt::MatchExactly);
if (items.size() > 0) {
    // An item found
}

1
如果您要添加Python逻辑,请@panofish发布新答案。这是vahancho的答案,您不应该编辑与OP意思不符的内容,他只是在上面发布示例。请发布一个新答案 :) - secretformula
1
我是原帖发布者,我在寻求Python逻辑方面的帮助。非常感谢vahancho指导我正确的方向,但我需要的是Python。如果我发布一个新答案,那么我必须将自己的答案标记为正确,并减少vahancho的好工作。 - panofish
1
@panofish 这就是 SO 的运作方式,编辑别人的回答超出了他们的意图是不合适的。 Vahancho 需要自己进行编辑。参见 此处。如果答案有用,为什么不点赞呢? - secretformula
@secretformula,好的,谢谢你的指导。我明白了。我会发表另一个答案。谢谢。 - panofish
我对这个答案进行了负面评价,因为它不是Python代码。我们中有些人根本不知道如何使用C ++编码。 - answerSeeker

3
items = self.listWidgetName.findItems("dan",Qt.MatchContains);

在使用QListWidget项目时,这是最有效的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接