如何在python中使用Pyqt5返回列表中的选定项而不是列表中的最后一项

时间:2018-06-19 10:54:13

标签: python list for-loop pyqt5 qlistwidget

我有一个代码,在用户选择系统仅返回最后一个项目的任何文件后,在QlistWidget中显示引用文件路径的项目。

我需要的是仅返回所选项目。

这样用户就可以选择任何项目,无论它存在于何处。

示例:

  • C:\ Users \ test \ Desktop \ New Microsoft Word Document.docx row => 0
  • C:\ Users \ test \ Desktop \ test_arabic.docx row => 1

在下面的函数中,我试图迭代QlistWidget中的项目

  1. 获取文件的完整路径(从root用户)
  2. 拆分路径
  3. 根据索引
  4. 添加其余路径

    但这不起作用,因为有时列表中显示的文件来自不同的文件夹,因此具有不同的路径。

    的代码:

    def FileListSelected(self):             # Function to select the desired file from the list in the left pane
            ListIterator=range(self.listWidgetPDFlist.count())
            try:
                index = 0   
                for index in ListIterator:
                    p = pathlib.Path(self.fullPath)
                    print("this is P==>{}".format(p))
                    oneDir = os.path.join(*p.parts[:-2])
                    print("this is oneDir==>{}".format(oneDir))            
                    Item= oneDir + "\\" + self.listWidgetPDFlist.selectedItems()[index].text()
                    print("this is the cuurent Item =={}".format(Item))            
                    ppp=os.path.join(os.path.expanduser("~"), Item) 
    
                    print("this is ppp==>{}".format(ppp))
                    print("===============================================")
                    index =+1
                    print("index =>".format(index))
                    self.mouseHover()
                    return ppp
            except Exception as e:
                print(e)
    

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,则希望从列表中获取所选项目的文本。为此,请使用:

self.listWidgetPdfList.selectedItems()[0].text()

此处将0用作索引,因为只需要所选项目列表中的第一项。如果只需要选定的项目,则不需要遍历列表。