JoyceJi 2021-10-20 16:31 采纳率: 80%
浏览 143
已结题

PyQt5中Qlistwidget的itemClicked信号问题,自定义槽函数后无法打开界面

想要实现单击Qlistwidget中的一行并实现相关操作,mainwindow类构造函数定义了如下代码:

self.fire_list.setSelectionMode(QAbstractItemView.SingleSelection)
self.fire_list.itemClicked.connect(self.show)

类下自定义槽函数:

# 槽函数
def show(self):
        item = self.fire_list.selectedItems()[0]
        filename = item.text() 
        folder_path = self.file_lineEdit.text()
        file_path = join(folder_path,filename)
        img = cv.imread(file_path,1)
        img = cv.cvtColor(img,cv.COLOR_BGR2RGB)
        qimg = QImage(img.shape[1], img.shape[0], img.shape[1]*3, QImage.Format_RGB888)
        pixmap = QPixmap.fromImage(qimg)
        self.img_label.setPixmap(pixmap.scaled(self.Image_label.size(), Qt.KeepAspectRatio))

但是报了数组超出范围错误,不应等我点击item才触发show吗?错误如下:

Traceback (most recent call last):
  File "d:/code/python/paper_code/main_gui.py", line 134, in <module>
    main_win.show()
  File "d:/code/python/paper_code/main_gui.py", line 116, in show
    item = self.fire_list.selectedItems()[0]
IndexError: list index out of range

  • 写回答

2条回答 默认 最新

  • CSDN专家-黄老师 2021-10-20 16:57
    关注

    print(self.fire_list.selectedItems())看看这个数据结构,它应该是个空列表,因为你的提示是超出下标索引了

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月21日
  • 创建了问题 10月20日

悬赏问题

  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)