【问题标题】:How can I get QListWidget item by name?如何按名称获取 QListWidget 项目?
【发布时间】:2014-08-17 11:22:09
【问题描述】:

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

例如,如果我有以下 QListWidget 有 4 个项目,我如何获得包含 text = dan 的项目?

【问题讨论】:

    标签: python qt pyqt pyqt4 pyside


    【解决方案1】:

    您可以使用QListWidget::findItems() 函数。例如:

    QList<QListWidgetItem *> items = listWidget->findItems("dan", Qt::MatchExactly);
    if (items.size() > 0) {
        // An item found
    }
    

    【讨论】:

    • 如果您要添加 python 逻辑,@panofish 发布一个新答案。这是 vahancho 的答案,您不应该在不符合 OP 含义的内容中进行编辑,他只是发布了上面的示例。只需要一个新的答案:)
    • 我是原始发帖人,我要求的是 python 逻辑。我很感谢 vahancho 引导我朝着正确的方向前进,但我一直在寻找 python。如果我发布一个新答案,那么我必须将我自己的答案标记为正确并带走 vahanchos 的出色工作。
    • @panofish 这就是 SO 的工作方式,不适合编辑其他人的答案超出他们的意图。 Vahancho 需要自己进行编辑。见this。如果答案有用,为什么不直接投票。
    • @secretformula,好的,谢谢你教育我。这清除了它。我将发布另一个答案。谢谢
    • 我否决了这个答案,因为它不是 python 代码。我们中的一些人完全不知道如何用 C++ 编写代码。
    【解决方案2】:

    相当于vahancho的回答的python:

    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() 
    

    【讨论】:

    • 谢谢,这对我有帮助。
    • Qt.MatchExactly在QtCore中,所以QtCore.Qt.MatchExactly(如果还没有导入所有QtCore)
    • 您好,请问Qt.MatchExactly的反义词?例如,您正在找到“danny”,但上面仍然有“dan”,所以它仍然有效......我认为Qt有它,但我不知道如何......你有没有以防万一?谢谢
    【解决方案3】:
    items = self.listWidgetName.findItems("dan",Qt.MatchContains);
    

    这在使用QListWidget item 时效果最好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-20
      • 2018-04-22
      • 2021-10-18
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多