itemclicked中的错误是什么?

时间:2018-03-24 15:30:14

标签: python pyqt5 qlistwidget

我有一个python,其中包含一个列表,用于处理所选文件夹中现有PDF文件的路径。

我想要的是当用户点击该项目时,使系统在控制台中打印所选项目。

因此必须连接到 itemclick事件

我将不胜感激任何帮助。

系统显示此异常:

发生此错误'NoneType'对象没有属性'text'

这就是我试图做到的:       self.listWidgetPDFlist.itemClicked .... 如何继续?

创建一个空列表

fileList=[]

循环选定文件夹并将匹配的项目添加到 widgetList

for root,dirs,files in os.walk(directory):
            for filename in files:
                if filename.endswith('.pdf'):
                    t=os.path.join(directory,filename)
                    print(t)
                    #fileList.extend(t)
                    fileList.append(t)

        # add the list into the  listWidgetPDFlist          
        self.listWidgetPDFlist.addItems(fileList)

选择项目后,系统会在控制台中打印当前项目

self.listWidgetPDFlist.itemClicked(print(self.listWidgetPDFlist.currentItem().text()))

问题出在上面的代码行中

1 个答案:

答案 0 :(得分:1)

单击的项目是一个信号,必须连接到功能。

self.listWidgetPDFlist.itemClicked.connect(lambda: print(self.listWidgetPDFlist.currentItem().text()))

上面一行使用lambda语句在一行代码中打印所选项目。这将适用于您尝试在此处执行的非常简单的操作,但您也可以将此连接到方法以执行更多操作。

    self.listWidgetPDFlist.itemClicked.connect(self.print_item)

def print_item(self):
    print(self.listWidgetPDFlist.currentItem().text())
    # handle other items here

连接到方法时,在将方法名称连接到信号时,必须将括号从方法名称中删除。