def addRichTypes(self, l): """set the list of richtypes""" for q in l: i = len(self.richTypes) self.richTypes.append(q) l = QLabel(self) self.qlabels.append(l) l.setText(q.name) l.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) l.setToolTip(q.descr) self.gridLayout.addWidget(l, i, 0, 1, 1) cls = q.__class__ if cls == Text: w = QLineEdit(self) w.setMinimumSize(300, 30) if q.maxLen: w.setMaxLength(q.maxLen) w.setText(q.v) elif cls == MLText: w = QTextEdit(self) w.setAcceptRichText(False) w.setMinimumSize(300, 60) w.setText(q.v) elif cls == Choice: w = QComboBox(self) c = [unicode(x) for x in q.choices] c.sort() w.addItems(c) idx = w.findText(unicode(q.v)) if idx >= 0: w.setCurrentIndex(idx) elif cls == MultiChoice: w = QListWidget(self) w.setSelectionMode(QAbstractItemView.MultiSelection) w.setMinimumSize(100, 60) c = [unicode(x) for x in q.choices] c.sort() v = [unicode(x) for x in q.v] for ii, s in enumerate(c): w.addItem(s) if s in v: w.item(ii).setSelected(True) elif cls == Bool: w = QCheckBox(self) if q.v: w.setCheckState(Qt.Checked) else: w.setCheckState(Qt.Unchecked) elif cls == Integer: w = QSpinBox(self) if q.min is not None: w.setMinimum(q.min) if q.max is not None: w.setMaximum(q.max) if q.step is not None: w.setSingleStep(q.step or 0.01) if q.unit: w.setSuffix(' '+q.unit) w.setValue(q.v) elif cls == Float: w = QDoubleSpinBox(self) if q.min is not None: w.setMinimum(q.min) if q.max is not None: w.setMaximum(q.max) w.setSingleStep(q.step or 0.01) if q.unit: w.setSuffix(' '+q.unit) w.setValue(q.v) elif cls == DateTime: w = QDateTimeEdit(self) w.setCalendarPopup(True) dt = QDateTime() dt.setTime_t(q.v) w.setDateTime(dt) if q.min is not None: mindt = QDateTime() mindt.setTime_t(q.min) w.setMinimumDate(mindt.date()) if q.max is not None: maxdt = QDateTime() maxdt.setTime_t(q.max) w.setMaximumDate(maxdt.date()) l.setBuddy(w) w.setToolTip(q.descr) w.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) w.adjustSize() self.gridLayout.addWidget(w, i, 1, 1, 1) self.qwidgets.append(w) self.adjustSize()