【问题标题】:PyQt4: get list of all labels in QListWidgetPyQt4:获取 QListWidget 中所有标签的列表
【发布时间】:2012-08-23 08:33:01
【问题描述】:

我是 PyQt4 的新手,尤其是 QListWidget。我正在尝试获取 QListWidget 中当前显示的所有标签的(Python)列表。我能够获取所有 QListWidgetItems 的列表,但我不确定如何从那里获取标签...

这是我用来获取所有 QListWidgetItems 的列表:

    items = []
    for index in xrange(self.ui.QListWidget.count()):
         items.append(self.ui.QListWidgetitem(index))

感谢您的帮助!

【问题讨论】:

    标签: python qt4 pyqt4


    【解决方案1】:

    .text() 返回 QListWidgetItem 中的文本。请注意,您需要在原始 QListWidget 实例上调用 .item(index) 以获取列表小部件中包含的项目:

    items = []
    for index in xrange(self.ui.QListWidget.count()):
         items.append(self.ui.QListWidget.item(index))
    labels = [i.text() for i in items]
    

    【讨论】:

    • 感谢您的快速回复!不幸的是,这引发了一个错误:labels = [i.text() for i in items] AttributeError: 'builtin_function_or_method' object has no attribute 'text'`-我错过了什么?
    • @bigsleep:抱歉,我更新了代码以正确获取包含的项目。
    【解决方案2】:

    您可以强制列表小部件返回带有findItems 的所有项目:

    lst = [i.text() for i in self.lstFiles.findItems("", QtCore.Qt.MatchContains)]
    

    【讨论】:

      【解决方案3】:

      这是使用列表理解的解决方案:

      labels = [list_widget.item(i).text() for i in range(list_widget.count())]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-13
        • 1970-01-01
        • 2019-10-30
        • 2011-06-25
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 2011-06-04
        相关资源
        最近更新 更多