Duplicates In Qtreewidget
Solution 1:
I have solved my problem and created a method that takes a list of paths as an argument and return a list of QWidgetItems.
deftree_widget_list(self, show_list):
"""
Creates a list for updating tree widget
:param show_list:
:return:
"""
items = []
for item in show_list:
item_parts = item.split('\\')
entry = QtGui.QTreeWidgetItem(None, [item_parts[0]])
items_text = [i.text(0) for i in items]
if entry.text(0) notin items_text:
parent_item = entry
else:
parent_index = items_text.index(entry.text(0))
parent_item = items[parent_index]
iflen(item_parts) > 1:
for i in item_parts[1:]:
child_item = QtGui.QTreeWidgetItem(None, [i])
child_list_text = [parent_item.child(i).text(0) for i in xrange(parent_item.childCount())]
if child_item.text(0) in child_list_text:
child_index = child_list_text.index(child_item.text(0))
parent_item = parent_item.child(child_index)
else:
parent_item.addChild(child_item)
parent_item = child_item
items.append(entry) if entry.text(0) notin items_text elseNonereturn items
Then just use:
show_list = ["ABC\\AAA.txt", "DEF\\abc.txt", "ABC\\readme.txt"]
items =self.tree_widget_list(show_list)
self.cfg_src_tree.insertTopLevelItems(0, items)
For example for list ['MODULE\\designer\\qaxwidget.dll', 'MODULE\\designer\\qquickwidget.dll', 'MODULE\\designer\\qwebview.dll', 'MODULE\\iconengines\\qsvgicon.dll', 'MODULE\\imageformats\\qdds.dll', 'MODULE\\imageformats\\qgif.dll', 'MODULE\\imageformats\\qicns.dll', 'MODULE\\imageformats\\qico.dll', 'MODULE\\imageformats\\qjp2.dll', 'MODULE\\imageformats\\qjpeg.dll', 'MODULE\\imageformats\\qmng.dll', 'MODULE\\imageformats\\qsvg.dll', 'MODULE\\imageformats\\qtga.dll', 'MODULE\\imageformats\\qtiff.dll', 'MODULE\\imageformats\\qwbmp.dll', 'MODULE\\imageformats\\qwebp.dll', 'MODULE\\platforms\\qminimal.dll', 'MODULE\\platforms\\qoffscreen.dll', 'MODULE\\platforms\\qwindows.dll', 'MODULE\\printsupport\\windowsprintersupport.dll', 'MODULE\\sqldrivers\\qsqlite.dll', 'MODULE\\sqldrivers\\qsqlmysql.dll', 'MODULE\\sqldrivers\\qsqlodbc.dll', 'MODULE\\sqldrivers\\qsqlpsql.dll']
We have got:
Post a Comment for "Duplicates In Qtreewidget"