def updateWidgetList(self): #topWidgetBox.layout().addWidget(self.widgetList) # self.widgetList = redRQTCore.treeWidget(self.topWidgetBox, label=_('Widget List'), displayLabel=False) # self.widgetList.setHeaderLabels([_('Element'), _('Parameters')]) #print self.widgetNames.keys() self.widgetList.clear() # self.widgetList.addItems(self.widgetNames.keys()) # count = int(self.widgetList.count()) for name,widget in self.reportData.items(): print _('widget name'), name w = redRQTCore.treeWidgetItem(self.widgetList, [name], flags=Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) w.pointer = self.reportData[name] w.setCheckState(0,Qt.Checked); notesTreeElement = self.createTreeWidgetItem(w, _('Notes'), widget['notes']) for container, data in widget['reportData'].items(): if container =='main': parent = w else: parent = redRQTCore.treeWidgetItem(None, [container], flags=Qt.ItemIsUserCheckable | Qt.ItemIsSelectable | Qt.ItemIsEnabled) #parent.pointer = self.reportData[name]['reportData'][container] parent.setCheckState(0,Qt.Checked) w.addChild(parent) for elementName, element in data.items(): self.createTreeWidgetItem(parent, elementName, self.reportData[name]['reportData'][container][elementName]) self.widgetList.setColumnWidth(0,250)
def createTreeWidgetItem(self, parent, elementName, dataPointer): n = redRQTCore.treeWidgetItem(None, [elementName], flags=Qt.ItemIsUserCheckable | Qt.ItemIsEnabled) n.pointer = dataPointer if dataPointer['includeInReports']: n.setCheckState(0,Qt.Checked) else: n.setCheckState(0,Qt.Unchecked) parent.addChild(n) # print '##############',elementName, parent, dataPointer # parameterBox = QWidget(None) # parameterBox.setLayout(QHBoxLayout()) # parameterBox.setMinimumWidth(200) # parameterBox.layout().setSpacing(9) #parameterBox.controlArea.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) # parameterBox.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) if 'numChrLimit' in dataPointer.keys(): a = redRQTCore.lineEdit(None,label=_('Word Limit'), text=unicode(dataPointer['numChrLimit']), width=50, textChangedCallBack=lambda: self.lineEditChanged(a.text(),dataPointer,'numChrLimit') ) a.hb.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) # a.hb.setMaximumWidth(100) #a.hb.setMinimumWidth(100) self.widgetList.setItemWidget(n, 1, a.controlArea) if 'numRowLimit' in dataPointer.keys(): a = redRQTCore.lineEdit(None,label=_('Table Row Limit'),text=unicode(dataPointer['numRowLimit']),width=50, textChangedCallBack=lambda: self.lineEditChanged(a.text(),dataPointer,'numRowLimit')) a.hb.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.widgetList.setItemWidget(n, 1, a.controlArea)