def fill_item(item, value, level): item.setExpanded(True) if type(value) is dict: for key, val in sorted(value.items()): child = QTreeWidgetItem() child.setText(level, str(key)) item.addChild(child) fill_item(child, val, level+1) elif type(value) is list: for val in value: child = QTreeWidgetItem() item.addChild(child) if type(val) is dict: child.setText(level, '[dict]') fill_item(child, val, level+1) elif type(val) is list: child.setText(level, '[list]') fill_item(child, val, level+1) else: child.setText(level, str(val)) child.setExpanded(True) else: child = QTreeWidgetItem() child.setText(level, str(value)) item.addChild(child)
class LoadThings(QUndoCommand): def __init__(self, widget, thing): super(LoadThings, self).__init__() self.widget = widget self.createdThing = thing self.item = QTreeWidgetItem() self.item.setText(0, thing.name) typeName = type(thing).__name__ for i in range(self.widget.ui.treeWidget.topLevelItemCount()): group = self.widget.ui.treeWidget.topLevelItem(i) if group.text(0) == typeName: self.group = group break else: # group not found self.group = QTreeWidgetItem() self.group.setText(0, typeName) def redo(self): if self.widget.ui.treeWidget.indexOfTopLevelItem(self.group) == -1: self.widget.ui.treeWidget.addTopLevelItem(self.group) self.group.addChild(self.item) self.group.setExpanded(True) self.widget.ui.treeWidget.setCurrentItem(self.item) def undo(self): self.group.takeChild(self.group.childCount()-1) if self.group.childCount() == 0: parentIndex = self.widget.ui.treeWidget.indexOfTopLevelItem(self.group) self.widget.ui.treeWidget.takeTopLevelItem(parentIndex)
def __init__(self): super(ToolBox, self).__init__() self.setDragEnabled(True) self.setColumnCount(2) self.header().setVisible(False) gatesheader = QTreeWidgetItem(self, [self.str_basicGates]) gatesheader.setFlags( ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable) gatesheader.setExpanded(True) imgDir = filePath('icons/') for name, class_ in inspect.getmembers( gates, lambda m: ( inspect.isclass(m) and m.__module__ == 'engine.gates')): item = QTreeWidgetItem(gatesheader, [name[:-4]]) item.setIcon(0, QIcon(imgDir + name + '.png')) item = QTreeWidgetItem(gatesheader, ['JKFlipFlop']) item.setIcon(0, QIcon(imgDir + 'JKFlipFlop.png')) item = QTreeWidgetItem(gatesheader, ['RSFlipFlop']) item.setIcon(0, QIcon(imgDir + 'RSFlipFlop.png')) ioheader = QTreeWidgetItem(self, [self.str_IO]) ioheader.setFlags( ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable) ioheader.setExpanded(True) [ QTreeWidgetItem(ioheader, [name]) for name in [self.str_I, self.str_O, self.str_Clock]] self.userheader = QTreeWidgetItem(self, [self.str_userCircuits]) [QTreeWidgetItem(self.userheader, [name[:-4], 'user']) for name in sorted(listdir(filePath('user/')))] self.userheader.setFlags( ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable) self.userheader.setExpanded(True) self.setColumnWidth(0, 300)
def fill_item(self,item, value): item.setExpanded(True) if type(value) is dict: for key, val in sorted(value.iteritems()): child = QTreeWidgetItem() x = "{0:.3f}".format(key) # x = key child.setText(0, unicode(x)) child.setFlags(Qt.ItemIsEnabled) item.addChild(child) self.fill_item(child, val) elif type(value) is list: for val in value: child = QTreeWidgetItem() item.addChild(child) if type(val) is dict: child.setText(0, '[dict]') self.fill_item(child, val) elif type(val) is list: child.setText(0, '[list]') self.fill_item(child, val) else: child.setText(0, str(value.index(val))) child.setExpanded(True) else: print 'hi' child = QTreeWidgetItem() child.setText(0, unicode(value)) item.addChild(child)
def fill_item(self, item, value): #recursively fills the tree item.setExpanded(True) for key, val in sorted(value.iteritems()): #tilts child = QTreeWidgetItem() child.setText(0, unicode(key)) child.setFlags(Qt.ItemIsEnabled) item.addChild(child) for keykey in sorted(val.keys()): #imgIDs childchild = QTreeWidgetItem() child.addChild(childchild) childchild.setText(0, str(keykey)) child.setExpanded(True) childchild.setExpanded(True)
def add_to_tree(self): if self.mysql.do: self.nDataBase = self.mysql.getDataBase() for i in self.nDataBase: item_m = QTreeWidgetItem(self) item_m.setStatusTip(0, 'main') item_m.setText(0, "%s" % i) if i in self.li: item_m.setExpanded(True) self.table = self.mysql.getTables(i) for j in self.table: item_c = QTreeWidgetItem(item_m) item_c.setStatusTip(0, i) item_c.setText(0, "%s" % j)
class ToolBox(QTreeWidget): """A toolbox that contains logic gates and user circuits, for use in the main designer window. """ def __init__(self): super(ToolBox, self).__init__() self.setDragEnabled(True) self.setColumnCount(2) self.header().setVisible(False) gatesheader = QTreeWidgetItem(self, [self.str_basicGates]) gatesheader.setFlags( ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable) gatesheader.setExpanded(True) imgDir = filePath('icons/') for name, class_ in inspect.getmembers( gates, lambda m: ( inspect.isclass(m) and m.__module__ == 'engine.gates')): item = QTreeWidgetItem(gatesheader, [name[:-4]]) item.setIcon(0, QIcon(imgDir + name + '.png')) item = QTreeWidgetItem(gatesheader, ['JKFlipFlop']) item.setIcon(0, QIcon(imgDir + 'JKFlipFlop.png')) item = QTreeWidgetItem(gatesheader, ['RSFlipFlop']) item.setIcon(0, QIcon(imgDir + 'RSFlipFlop.png')) ioheader = QTreeWidgetItem(self, [self.str_IO]) ioheader.setFlags( ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable) ioheader.setExpanded(True) [ QTreeWidgetItem(ioheader, [name]) for name in [self.str_I, self.str_O, self.str_Clock]] self.userheader = QTreeWidgetItem(self, [self.str_userCircuits]) [QTreeWidgetItem(self.userheader, [name[:-4], 'user']) for name in sorted(listdir(filePath('user/')))] self.userheader.setFlags( ~Qt.ItemFlag.ItemIsDragEnabled & ~Qt.ItemFlag.ItemIsSelectable) self.userheader.setExpanded(True) self.setColumnWidth(0, 300) def addUserCircuit(self, name): """When the user saves a circuit, add it at the correct alphabetical spot, if it is not already present.""" for i in range(self.userheader.childCount()): if self.userheader.child(i).text(0) == name: return QTreeWidgetItem(self.userheader, [name, 'user']) self.userheader.sortChildren(0, Qt.AscendingOrder)