2015-11-20 2 views
0

Я хотел бы создать дерево каталога файлов из данных в переменной (не физическое на диске). У меня есть данные:
data = ['folder1/file1', 'file2', 'file3', 'folder2/'file4']
И я хотел бы показать его как дерево каталогов.Дерево каталогов Qt из данных

  • папка1
    • файл1
  • folder2
    • file4
  • файл2
  • файл3

Я только что нашел anwsers, как это сделать для существующих папок. Это не должен быть код Python, я думаю, что смогу прочитать то, что мне нужно, с любого другого языка.
Какой класс следует использовать и как передавать данные на него?

С уважением,
Marek

+0

Что-то вроде [это] (https://jpnaude.github.io/Qtilities/page_observer_widgets.html)? –

ответ

4

Это поможет вам начать:

import sys 
from PySide.QtCore import * 
from PySide.QtGui import * 

app = QApplication(sys.argv) 

data = ['folder1/file1', 'file2', 'file3', 'folder2/file4'] 

treeWidget = QTreeWidget() 
treeWidget.setColumnCount(1) 
treeWidget.setMinimumSize(600, 400) 

items = [] 

for item in data: 
    itemparts = item.split('/') 

    entry = QTreeWidgetItem(None, [itemparts[0]]) 
    partentitem = entry 

    if len(itemparts) > 1: 
     for i in itemparts[1:]: 
      childitem = QTreeWidgetItem(None, [i]) 
      partentitem.addChild(childitem) 
      partentitem = childitem 

    items.append(entry) 

treeWidget.insertTopLevelItems(0, items) 

treeWidget.show() 
app.exec_() 
+0

Спасибо, полезно, но я уже использовал QStandardItemModel и QStandardItem. Работает почти так же, как и ваш. :) –

+0

@jotto. В таком случае, почему вы задали вопрос? И, более того, что именно * * ваш вопрос? – ekhumoro

+0

Потому что я сделал это после того, как задал вопрос :) –