如何列出QListWidget中的所有项目

7 投票
3 回答
31448 浏览
提问于 2025-04-17 23:22

抱歉如果这个问题已经被问过,但能否请你再解释一下:如何获取QListWidget中列出的所有ListWidgetItems?

发帖者后续补充:

这里是实际操作的例子。列表中有5个项目,减去一个后就剩下4个了。

from PyQt4 import QtGui, QtCore

class Dialog_01(QtGui.QMainWindow):
    def __init__(self):
        super(QtGui.QMainWindow,self).__init__()

        myQWidget = QtGui.QWidget()
        myBoxLayout = QtGui.QVBoxLayout()
        myQWidget.setLayout(myBoxLayout)
        self.setCentralWidget(myQWidget)

        self.lw = QtGui.QListWidget()
        myBoxLayout.addWidget(self.lw)

        for i in range(5):
            QtGui.QListWidgetItem('myItem', self.lw)

        ok_button = QtGui.QPushButton("Print count")
        ok_button.clicked.connect(self.OK)      
        myBoxLayout.addWidget(ok_button) 

    def OK(self):
        # let self.lw haven elements in it.
        items = []
        for x in range(self.lw.count()-1):
            items.append(self.lw.item(x))
        print len(items)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    dialog_1 = Dialog_01()
    dialog_1.show()
    sys.exit(app.exec_())

3 个回答

3

从QlistWidget对象中提取值

def Extract(self):
    lst = QtGui.QListWidget()
    items = []
    for x in range(lst.count()):
        items.append(lst.item(x).text())
    print(items) 
9

这里有一种很简单的方式来实现这个功能:

lw = QtGui.QListWidget()
items = [lw.item(x) for x in range(lw.count())]

或者如果你想要一个字符串的列表:

lw = QtGui.QListWidget()
items = [lw.item(x).text() for x in range(lw.count())]
8

这里有一个简单的方法,可以获取列表控件(listWidget)中的所有列表项(ListWidgetItems)。

lw = QtGui.QListWidget()
# let lw haven elements in it.
items = []
for x in range(lw.count()-1):
    items.append(lw.item(x))

#items will consist a list of ListWidgetItems.

撰写回答