【问题标题】:How to display Folders and recent items如何显示文件夹和最近的项目
【发布时间】:2023-03-03 03:53:02
【问题描述】:

在尝试从目录中检索一组数据并将其显示到 ListWidget 中时,我有 2 个问题。

由于我是 linux 用户,我将 ListWidget 设置为从桌面读取我的目录,其中包含 5 个文件夹和 5 个其他项目(.txt、.py 等)

  1. 目前我正在尝试让我的 ListWidget 只显示文件夹,但显然它确实这样做了,但它也显示了所有项目,使其总共 10 个项目而不是 5 个。 我尝试在网上查找,但找不到任何信息。有人可以帮我吗?

  2. 关于 Qns 1,我想知道是否可以在 ListWidget 中显示前 3 个最近的文件夹,如果选中了一个复选框?

    import glob
    import os
    
    
    def test(object):
    testList = QListWidget()
    localDir =  os.listdir("/u/ykt/Desktop/test")
    testList.addItems(localDir)
    

【问题讨论】:

  • 请显示您将项目添加到 listWidget 的代码部分
  • 已添加到我的主线程中,请查看。谢谢!

标签: pyqt4 qcombobox qlistwidget


【解决方案1】:

也许你应该尝试像下面这样的“QFileDialog”:

class MyWidget(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        fileNames = QFileDialog.getExistingDirectory(self, "list dir", "C:\\",QFileDialog.ShowDirsOnly)
        print fileNames

if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = MyWidget()
    widget.show()
    app.exec_()

第二个问题,你可以参考这个:enter link description here

【讨论】:

    【解决方案2】:
    1. 我猜您希望os.listdir() 将只返回给定路径 中的目录名称。实际上它也返回文件名。如果您只想将目录添加到 listWidget,请执行以下操作:

      import os
      osp = os.path
      def test(object):
          testList = QListWidget()
          dirPath = "/u/ykt/Desktop/test"
          localDir = os.listdir(dirPath)
          for dir in lacalDir:
              path = osp.join(dirPath, dir)
              if osp.isdir(path):
                  testList.addItem(dir)
      

    这只会将目录添加到 listWidget 中而忽略文件。

    1. 如果您想获取文件和/或文件夹的访问时间,请使用以下方法:

      import os.path as osp
      accessTime = osp.getatime("path/to/dir") # returns the timestamp
      

    获取所有目录的访问时间,值最大的是最近访问的目录。这样就可以获得最近访问的3个目录。

    【讨论】:

    • 我无法理解第二个问题。你能进一步解释一下吗? listWidget 现在包含 5 个目录,你想如何显示最近的 3 个目录?
    • 是的,目录中有 5 个文件夹,但我想显示最近修改过的 3 个文件夹,因此隐藏其他 2 个。这有意义吗?
    猜你喜欢
    • 2019-10-14
    • 2016-03-11
    • 1970-01-01
    • 2019-01-27
    • 2011-08-14
    • 1970-01-01
    • 2023-02-19
    • 1970-01-01
    • 2013-05-23
    相关资源
    最近更新 更多