Advertisement
Guest User

Untitled

a guest
May 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.02 KB | None | 0 0
  1. from PyQt5 import QtCore, QtGui, QtWidgets as QW
  2. import os#для работы с каталогами
  3.  
  4.  
  5. #класс, отображающий дерево каталогов системы
  6.  
  7. class Tree_View(QW.QTreeView):
  8.     def __init__(self, parent = None):
  9.         QW.QTreeView.__init__(self, parent)
  10.  
  11.         #устанавливаем модель
  12.         self.model = QtGui.QStandardItemModel(self)
  13.         self.setModel(self.model)
  14.         self.model.setHorizontalHeaderLabels(['Дерево'])
  15.  
  16.         path = r'/home/Krep_Kospit/PycharmProjects/'  # примем это за исходный путь
  17.         self.tree = QtGui.QStandardItem('tree')
  18.         self.model.appendRow(self.tree)
  19.         self.create_tree(path, self.tree)#этим методом, с помощью рекурсии, строим дерево каталогов и подкаталогов
  20.  
  21.  
  22.     def create_tree(self, path, root):
  23.         try:
  24.             if os.path.isdir(path):#если это каталог
  25.                 if os.listdir(path):#если внутри имеются подкаталоги
  26.                     item = QtGui.QStandardItem(path)
  27.                     root.appendRow(item)#добавим новую строку
  28.  
  29.                     for sub in os.listdir(path):#переберём подкаталоги
  30.                         self.create_tree(os.path.join(path, sub), item)#отправим их на проверку на наличием своих подкаталогов
  31.                 else:
  32.                     item = QtGui.QStandardItem(path)#если нет подкаталогов...
  33.                     root.appendRow(item)#просто добавим строку
  34.         except:
  35.             print('None')
  36.  
  37.  
  38.  
  39. #если запускаем как самостоятельный модуль
  40. if __name__ == '__main__':
  41.     import sys
  42.  
  43.     app = QW.QApplication(sys.argv)
  44.     TreeViewWindow = Tree_View()
  45.     TreeViewWindow.setMinimumSize(800,00)
  46.     TreeViewWindow.show()
  47.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement