l565125579 2018-12-03 10:53 采纳率: 100%
浏览 2872
已采纳

PyQt5的QListView多选返回值

代码如下,怎么样实现多选返回列表,显示在QLabel

图片说明

 import sys
from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QListView,QAbstractItemView
from PyQt5.QtCore import QStringListModel
from PyQt5 import QtWidgets

class ListViewDemo(QWidget):
    def __init__(self,parent=None):
        super(ListViewDemo, self).__init__(parent)
        #设置初始大小与标题
        self.resize(300,270)
        self.setWindowTitle('QListView 多选问题')

        #垂直布局
        self.layout=QVBoxLayout()

        #实例化列表视图
        self.listview=QListView()

        #实例化列表模型,添加数据
        self.slm=QStringListModel()
        self.qList=['Item 1','Item 2','Item 3','Item 4','Item 5','Item 6','Item 7','Item 8','Item 9']

        #设置模型列表视图,加载数据列表
        self.slm.setStringList(self.qList)

        #设置列表视图的模型
        self.listview.setModel(self.slm)

        # 多选
        self.listview.setSelectionMode(QAbstractItemView.ExtendedSelection)
        # 不能对表格进行修改(双击重命名等)
        self.listview.setEditTriggers(QAbstractItemView.NoEditTriggers)

        self.label_dqxz = QtWidgets.QLabel()
        self.label_dqxz.setText("当前选择:-")

        #单击触发自定义的槽函数
        self.listview.clicked.connect(self.clicked)


        #设置窗口布局,加载控件
        self.layout.addWidget(self.listview)
        self.layout.addWidget(self.label_dqxz)
        self.setLayout(self.layout)

    def clicked(self,index):

        self.label_dqxz.setText('当前选择:'+self.qList[index.row()])


if __name__ == '__main__':
    app=QApplication(sys.argv)
    win=ListViewDemo()
    win.show()
    sys.exit(app.exec_())

  • 写回答

2条回答 默认 最新

  • lyhsdy 2018-12-04 02:46
    关注

    如果答案对你有帮忙,请采纳

    
    import sys
    from PyQt5.QtWidgets import QApplication,QWidget,QVBoxLayout,QListView,QAbstractItemView
    from PyQt5.QtCore import QStringListModel
    from PyQt5 import QtWidgets
    
    class ListViewDemo(QWidget):
        def __init__(self,parent=None):
            super(ListViewDemo, self).__init__(parent)
            #设置初始大小与标题
            self.resize(300,270)
            self.setWindowTitle('QListView 多选问题')
    
            #垂直布局
            self.layout=QVBoxLayout()
    
            #实例化列表视图
            self.listview=QListView()
    
            #实例化列表模型,添加数据
            self.slm=QStringListModel()
            self.qList=['Item 1','Item 2','Item 3','Item 4','Item 5','Item 6','Item 7','Item 8','Item 9']
    
            #设置模型列表视图,加载数据列表
            self.slm.setStringList(self.qList)
    
            #设置列表视图的模型
            self.listview.setModel(self.slm)
    
            # 多选
            self.listview.setSelectionMode(QAbstractItemView.ExtendedSelection)
            # 不能对表格进行修改(双击重命名等)
            self.listview.setEditTriggers(QAbstractItemView.NoEditTriggers)
    
            self.label_dqxz = QtWidgets.QLabel()
            self.label_dqxz.setText("当前选择:-")
    
            #单击触发自定义的槽函数
            self.listview.clicked.connect(self.clicked)
    
    
    
            #设置窗口布局,加载控件
            self.layout.addWidget(self.listview)
            self.layout.addWidget(self.label_dqxz)
            self.setLayout(self.layout)
    
        def clicked(self):
            textlist=''
            for i in self.listview.selectedIndexes():
                text=i.data()
                textlist=textlist+' '+text
            self.label_dqxz.setText('当前选择:'+textlist)
    
    
    if __name__ == '__main__':
        app=QApplication(sys.argv)
        win=ListViewDemo()
        win.show()
        sys.exit(app.exec_())
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题