def fillTree(self): self.profilesTree.clear() allProfiles = defaultdict(list) for v in list(profiles.values()): allProfiles[v.group].append(v) profileIcon = QIcon( os.path.join(os.path.dirname(__file__), os.pardir, 'icons', 'profile.png')) for group, groupProfiles in allProfiles.items(): groupItem = QTreeWidgetItem() groupItem.setText(0, group) for profile in groupProfiles: profileItem = QTreeWidgetItem() profileItem.profile = profile profileItem.isCustom = False profileItem.setText(0, profile.name) profileItem.setIcon(0, profileIcon) groupItem.addChild(profileItem) self.profilesTree.addTopLevelItem(groupItem) groupItem = QTreeWidgetItem() groupItem.setText(0, self.tr("User profiles")) for profile in customProfiles(): profileItem = QTreeWidgetItem() profileItem.profile = profile profileItem.isCustom = True profileItem.setText(0, profile.name) profileItem.setIcon(0, profileIcon) groupItem.addChild(profileItem) self.profilesTree.addTopLevelItem(groupItem) self.profilesTree.expandAll()