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 cmd_loadList(self): self.treeWidget.clear() sels = pymel.core.ls(sl=1, type='transform') data = [] for sel in sels: widgetItem = QTreeWidgetItem(self.treeWidget) widgetItem.setText(0, sel.name()) widgetItem.setText(1, sel.nodeName().split('_')[-1]) widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable) data.append([widgetItem.text(0), widgetItem.text(1)])
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 updateTree(self, name): ''' adds DataItem to tree view ''' dataItem = QTreeWidgetItem(self.ui.dataView) dataItem.setText(0, name) dataItem.setFlags(Qt.ItemIsEnabled|Qt.ItemIsEditable) for i in range(len(self.datas[-1].data)/4): x = DataItem(dataItem) x.setText(0, self.datas[-1].name[i*4]) x.setFlags(Qt.ItemIsEnabled|Qt.ItemIsSelectable) x.setNumData(self.datas[-1].data[i*4]) if hasattr(self.datas[-1], 'triggers'): x.triggers = self.datas[-1].triggers if hasattr(self.datas[-1], 'frames'): x.depth = self.datas[-1].seekFrame
def parsePluginSpecs(self, parentItem, plugins): ret = 0 loadCount = 0 for i in range(len(plugins)): spec = plugins[i] if spec.hasError(): ret |= ParsedState.ParsedWithErrors pluginItem = QTreeWidgetItem([spec.name(), "", "{0} ({1})".format(spec.version(), spec.compatVersion()), spec.vendor()]) pluginItem.setToolTip(0, QDir.toNativeSeparators(spec.filePath())) ok = not spec.hasError() icon = self.okIcon if ok else self.errorIcon if ok and spec.state() is not PluginState.Running: icon = self.notLoadedIcon pluginItem.setIcon(0, icon) pluginItem.setData(0, Qt.UserRole, spec) state = Qt.Unchecked if spec.isEnabled(): state = Qt.Checked loadCount += 1 if spec.name() not in self.whitelist: pluginItem.setData(C_LOAD, Qt.CheckStateRole, state) else: pluginItem.setData(C_LOAD, Qt.CheckStateRole, Qt.Checked) pluginItem.setFlags(Qt.ItemIsSelectable) pluginItem.setToolTip(C_LOAD, "Load on Startup") self.specToItem[spec] = pluginItem if parentItem: parentItem.addChild(pluginItem) else: self.items.append(pluginItem) if loadCount == len(plugins): groupState = Qt.Checked ret |= ParsedState.ParsedAll elif loadCount == 0: groupState = Qt.Unchecked ret |= ParsedState.ParsedNone else: groupState = Qt.PartiallyChecked ret |= ParsedState.ParsedPartial return ret, groupState
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)
def readData(self, *args): data = super(Widget_objectList, self).readData(Widget_objectList.path_uiInfo) if not type(data) == dict: return self.treeWidget.clear() keys = data.keys() keys.sort() for key in keys: try: nodeName, attrName = data[key] except: return widgetItem = QTreeWidgetItem(self.treeWidget) widgetItem.setText(0, nodeName) widgetItem.setText(1, attrName) widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)