self.emitvaluechanged() def _biglistitem(self, index): self.widget.setCurrentIndex(index.row()) def setvalue(self, value): self._bindvalue = value index = self.widget.findData(value) self.widget.setCurrentIndex(index) if index == -1 and self.widget.isEditable(): if value is None and not self.config['allownull']: return self.widget.addItem(str(value)) index = self.widget.count() - 1 self.widget.setCurrentIndex(index) def value(self): index = self.widget.currentIndex() value = self.widget.itemData(index) text = self.widget.currentText() if value is None and self.widget.isEditable( ) and not text == '(no selection)': return self.widget.currentText() return value registerwidgets(ListWidget)
config = dict(mode=mode, mindate=self.datewidget.minimumDate()) self.largewidgetrequest.emit(BigDateWidget, self.value(), self.setvalue, config) def setvalue(self, value): if value is None: value = DateWidget.DEFAULTDATE elif isinstance(value, basestring): value = QDateTime.fromString(value, Qt.ISODate) if isinstance(value, QDate): value = QDateTime(value) if hasattr(self.datewidget, 'setDate'): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, 'setTime'): self.datewidget.setTime(value.time()) def value(self): datetime = self.datewidget.dateTime() if datetime == DateWidget.DEFAULTDATE: return None else: return datetime.toString(Qt.ISODate) registerwidgets(DateWidget)
else: dlg.setDateTime(self.datewidget.dateTime()) dlg.setMinValue(self.datewidget.minimumDate()) if dlg.exec_(): datetime = QDateTime() datetime.setDate(dlg.getSelectedDate()) datetime.setTime(dlg.getSelectedTime()) self.setvalue(datetime) def setvalue(self, value): if value is None: value = DateWidget.DEFAULTDATE elif not isinstance(value, QDateTime): value = QDateTime.fromString(value, Qt.ISODate) if hasattr(self.datewidget, 'setDate'): self.datewidget.setDate(value.date()) if hasattr(self.datewidget, 'setTime'): self.datewidget.setTime(value.time()) def value(self): datetime = self.datewidget.dateTime() if datetime == DateWidget.DEFAULTDATE: return None else: return datetime.toString(Qt.ISODate) registerwidgets(DateWidget)
if (not self.allownulls and (not self.widget.currentText() or self.widget.currentText() == "(no selection)")): self.raisevalidationupdate(False) else: self.raisevalidationupdate(True) self.emitvaluechanged() def setvalue(self, value): self._bindvalue = value index = self.widget.findData(value) self.widget.setCurrentIndex(index) if index == -1 and self.widget.isEditable(): if value is None and not self.config['allownull']: return self.widget.addItem(str(value)) index = self.widget.count() - 1 self.widget.setCurrentIndex(index) def value(self): index = self.widget.currentIndex() value = self.widget.itemData(index) text = self.widget.currentText() if value is None and self.widget.isEditable() and not text == '(no selection)': return self.widget.currentText() return value registerwidgets(ListWidget)
self.largewidgetrequest.emit(CameraWidget, None, self.phototaken) def phototaken(self, value): self.setvalue(value) def updatefromconfig(self): self.defaultlocation = self.config.get('defaultlocation', '') def validate(self, *args): self.raisevalidationupdate(not self.widget.isDefault) self.emitvaluechanged() def showlargeimage(self, pixmap): RoamEvents.openimage.emit(pixmap) def setvalue(self, value): if self.tobase64 and value and not isinstance(value, QPixmap): value = QByteArray.fromBase64(value) self.widget.loadImage(value) def value(self): image = self.widget.getImage() if self.tobase64 and image: image = image.toBase64() return image.data() return image registerwidgets(ImageWidget)
def phototaken(self, value): self.setvalue(value) def updatefromconfig(self): self.defaultlocation = self.config.get('defaultlocation', '') def validate(self, *args): self.raisevalidationupdate(not self.widget.isDefault) self.emitvaluechanged() def showlargeimage(self, pixmap): RoamEvents.openimage.emit(pixmap) def setvalue(self, value): if self.tobase64 and value and not isinstance(value, QPixmap): value = QByteArray.fromBase64(value) self.widget.loadImage(value) def value(self): image = self.widget.getImage() if self.tobase64 and image: image = image.toBase64() return image.data() return image registerwidgets(ImageWidget)
self.emitvaluechanged() def setvalue(self, value): # Not the best way but should cover most use cases # for now value = value or '' value = unicode(value) try: self.widget.setPlainText(value) except AttributeError: self.widget.setText(value) def value(self): try: return self.widget.toPlainText() except AttributeError: return self.widget.text() class TextBlockWidget(TextWidget): widgettype = 'TextBlock' def __init__(self, *args): super(TextBlockWidget, self).__init__(*args) def createWidget(self, parent): return QPlainTextEdit(parent) registerwidgets(TextWidget, TextWidget)
return QDoubleSpinBox(parent) def initWidget(self, widget): super(DoubleNumberWidget, self).initWidget(widget) def _getmaxmin(self, config): max = config.get('max', '') min = config.get('min', '') try: max = float(max) except ValueError: max = sys.float_info.max try: min = float(min) except ValueError: min = sys.float_info.min print max, min return max, min def setvalue(self, value): if not value: value = 0.00 value = float(value) self.widget.setValue(value) registerwidgets(NumberWidget) registerwidgets(DoubleNumberWidget)
max = float(max) except ValueError: max = None try: min = float(min) except ValueError: min = None if min and max: self.widget.setRange(min, max) elif max: self.widget.setMaximum(max) elif min: self.widget.setMinimum(min) self.widget.setPrefix(prefix) self.widget.setSuffix(suffix) def setvalue(self, value): if not value: value = 0.00 value = float(value) self.widget.setValue(value) def value(self): return self.widget.value() registerwidgets(NumberWidget)
QCheckBox[ok=true] {border-radius: 5px; background-color: rgba(200, 255, 197, 150); } QGroupBox::title[required=true] {border-radius: 5px; background-color: rgba(255, 221, 48,150);} QGroupBox::title[ok=true] { border-radius: 5px; background-color: rgba(200, 255, 197, 150); }""" def createWidget(self, parent): return QCheckBox(parent) def initWidget(self, widget): widget.toggled.connect(self.emitvaluechanged) widget.toggled.connect(self.validate) def validate(self, *args): self.raisevalidationupdate(self.widget.isChecked()) def setvalue(self, value): checkedvalue = self.config['checkedvalue'] checked = str(value) == checkedvalue or False self.widget.setChecked(checked) def value(self): if self.widget.isChecked(): return self.config['checkedvalue'] else: return self.config['uncheckedvalue'] registerwidgets(CheckboxWidget)
{border-radius: 5px; background-color: rgba(255, 221, 48,150);} QCheckBox[ok=true] {border-radius: 5px; background-color: rgba(200, 255, 197, 150); } QGroupBox::title[required=true] {border-radius: 5px; background-color: rgba(255, 221, 48,150);} QGroupBox::title[ok=true] { border-radius: 5px; background-color: rgba(200, 255, 197, 150); }""" def createWidget(self, parent): return QCheckBox(parent) def initWidget(self, widget): widget.toggled.connect(self.emitvaluechanged) widget.toggled.connect(self.validate) def validate(self, *args): self.raisevalidationupdate(self.widget.isChecked()) def setvalue(self, value): checkedvalue = self.config['checkedvalue'] checked = str(value) == checkedvalue or False self.widget.setChecked(checked) def value(self): if self.widget.isChecked(): return self.config['checkedvalue'] else: return self.config['uncheckedvalue'] registerwidgets(CheckboxWidget)
def createWidget(self, parent): return QDoubleSpinBox(parent) def initWidget(self, widget): super(DoubleNumberWidget, self).initWidget(widget) def _getmaxmin(self, config): max = config.get('max', '') min = config.get('min', '') try: max = float(max) except ValueError: max = sys.float_info.max try: min = float(min) except ValueError: min = sys.float_info.min print max, min return max, min def setvalue(self, value): if not value: value = 0.00 value = float(value) self.widget.setValue(value) registerwidgets(NumberWidget) registerwidgets(DoubleNumberWidget)