2014-01-19 6 views
0

У меня есть 2 вопроса, пытаясь получить набор данных из каталога и вывешивая его в ListWidget.Как отображать папки и последние статьи

Как я пользователь Linux, я установил мой ListWidget читать мой каталог с рабочего стола, в котором внутренностей содержит, скажем, 5 папок и 5 различ пунктов (.txt, .py и т.д.)

  1. В настоящее время я пытаясь заставить мой ListWidget отображать только папки, но, видимо, он это делает, но он также отображает все элементы, в результате чего он состоит из 10 элементов вместо 5. Я пробовал искать в сети, но я не могу найти какую-либо информацию , Кто-нибудь может мне помочь?

  2. Относится к Qns 1, мне интересно, можно ли отображать последние 3 последних папки в ListWidget, если флажок установлен?

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

Пожалуйста, покажите часть кода, где вы добавляете детали к listWidget – qurban

+0

Добавлено в мой основной поток, пожалуйста, посмотрите. благодаря! – dissidia

ответ

0
  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 каталога.

+0

Я не мог понять второй вопрос. Не могли бы вы объяснить это дальше? ListWidget теперь содержит 5 каталогов, как вы хотите отображать 3 последних каталога? – qurban

+0

Да, есть 5 папок в каталоге, но я хотел отобразить последние 3 папки, которые были изменены, и, следовательно, скрывать другие 2 .. В этом смысл? – dissidia

+0

Хорошо, я обновляю свой ответ. – qurban

0

Может быть, вы должны попробовать «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

 Смежные вопросы

  • Нет связанных вопросов^_^