首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中使用Pyqt5获取列表中选中的QlistWidgetItem总数

如何在python中使用Pyqt5获取列表中选中的QlistWidgetItem总数
EN

Stack Overflow用户
提问于 2018-06-03 02:05:41
回答 1查看 1K关注 0票数 0

我有一个向QlistWidget添加项目的函数。

我想在添加的项目中添加一个复选框,在用户选中该复选框后,我需要打印选中项目的总数。

选中复选框后,不打印任何内容。

代码:

代码语言:javascript
复制
def ListFilesInViewer(self,Files):              
        for item1 in Files:
            item = QtWidgets.QListWidgetItem(item1)
            item.setCheckState(QtCore.Qt.Unchecked)

            for index in range(self.listWidgetPDFlist.count()):
                if self.listWidgetPDFlist.item(index).checkState() == QtCore.Qt.Checked:
                     print("checked item ==>{}".format(self.listWidgetPDFlist.item(index)))


            self.listWidgetPDFlist.addItem(item)
            self.lineEditTotalPDFnumber.setText(str(self.listWidgetPDFlist.count())) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 04:46:15

我试着重现你想做的事。试试看:

代码语言:javascript
复制
import sys
from PyQt5 import QtWidgets, QtGui, QtCore

class Window(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)

        self.lineEditTotalPDFnumber = QtWidgets.QLineEdit('QLineEdit')
        self.lineEditTotalPDFnumber.setReadOnly(True)

        self.listWidgetPDFlist = QtWidgets.QListWidget()

        self.vlayout = QtWidgets.QVBoxLayout()
        self.vlayout.addWidget(self.listWidgetPDFlist)
        self.vlayout.addWidget(self.lineEditTotalPDFnumber)

        self.btnAddItems = QtWidgets.QPushButton()
        self.btnAddItems.setText('add items')
        self.vlayout.addWidget(self.btnAddItems)
        self.btnAddItems.clicked.connect(self.addItems)

        self.btnPrintItems = QtWidgets.QPushButton()
        self.btnPrintItems.setText('print the total number of checked items')
        self.vlayout.addWidget(self.btnPrintItems)
        self.btnPrintItems.clicked.connect(self.printItems)

        self.setLayout(self.vlayout)

    def addItems(self):
        Files = ["file1", "file2", "file3",]
        print("\nFiles ", Files)

        self.ListFilesInViewer(Files)

    def ListFilesInViewer(self, Files):              
        for item1 in Files:
            item = QtWidgets.QListWidgetItem(item1)
            print("\titem =",item)
            item.setCheckState(QtCore.Qt.Unchecked)  #Unchecked
            item.setText('`{}` - QListWidget item № `{}`'.format(str(item1), str(self.listWidgetPDFlist.count()))) 
            self.listWidgetPDFlist.addItem(item)  # listWidgetPDFlist

    def printItems(self):
        checkedItem = 0
        for index in range(self.listWidgetPDFlist.count()):
            if self.listWidgetPDFlist.item(index).checkState() == QtCore.Qt.Checked:
                 print("checked item ==>{}, index={}".format(self.listWidgetPDFlist.item(index), index))
                 checkedItem += 1        
        self.lineEditTotalPDFnumber.setText("checked items --> {}".format(str(checkedItem)))


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = Window()
    window.resize(500, 400)
    window.show()
    sys.exit(app.exec_())

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50659758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档