class DateTimeWidget(WidgetWrapper): def createWidget(self): self._combo = QDateTimeEdit() self._combo.setCalendarPopup(True) return self._combo def value(self): date_chosen = self._combo.dateTime() return date_chosen.toString(Qt.ISODate)
def extra_keywords_to_widgets(extra_keyword_definition): """Create widgets for extra keyword. :param extra_keyword_definition: An extra keyword definition. :type extra_keyword_definition: dict :return: QCheckBox and The input widget :rtype: (QCheckBox, QWidget) """ # Check box check_box = QCheckBox(extra_keyword_definition['name']) check_box.setToolTip(extra_keyword_definition['description']) check_box.setChecked(True) # Input widget if extra_keyword_definition['type'] == float: input_widget = QDoubleSpinBox() input_widget.setMinimum(extra_keyword_definition['minimum']) input_widget.setMaximum(extra_keyword_definition['maximum']) input_widget.setSuffix(extra_keyword_definition['unit_string']) elif extra_keyword_definition['type'] == int: input_widget = QSpinBox() input_widget.setMinimum(extra_keyword_definition['minimum']) input_widget.setMaximum(extra_keyword_definition['maximum']) input_widget.setSuffix(extra_keyword_definition['unit_string']) elif extra_keyword_definition['type'] == str: if extra_keyword_definition.get('options'): input_widget = QComboBox() options = extra_keyword_definition['options'] for option in options: input_widget.addItem( option['name'], option['key'], ) default_option_index = input_widget.findData( extra_keyword_definition['default_option']) input_widget.setCurrentIndex(default_option_index) else: input_widget = QLineEdit() elif extra_keyword_definition['type'] == datetime: input_widget = QDateTimeEdit() input_widget.setCalendarPopup(True) input_widget.setDisplayFormat('hh:mm:ss, d MMM yyyy') input_widget.setDateTime(datetime.now()) else: raise Exception input_widget.setToolTip(extra_keyword_definition['description']) # Signal # noinspection PyUnresolvedReferences check_box.stateChanged.connect(input_widget.setEnabled) return check_box, input_widget
def createWidget(self): now = QTime.currentTime() curdate = QDateTime(QDate.currentDate(), QTime(now.hour(), 0)) dateEdit = QDateTimeEdit(curdate.toUTC()) dateEdit.setDisplayFormat("yyyy-MM-dd HH:mm") dateEdit.setTimeSpec(Qt.TimeZone) return dateEdit
def filterMenu(self, table, pos): index = table.columnAt(pos.x()) menu = QMenu() filter_operation = QComboBox() if table.types[index] in [10]: filter_operation.addItems([self.tr('Contains'),self.tr('Equals')]) else: filter_operation.addItems(['=','>','<']) filter_operation.setCurrentIndex(table.filter_op[index]) action_filter_operation = QWidgetAction(self) action_filter_operation.setDefaultWidget(filter_operation) if table.types[index] in [14]: if not isinstance(table.filters[index], QDate): filter_value = QDateEdit() else: filter_value = QDateEdit(table.filters[index]) elif table.types[index] in [15]: if not isinstance(table.filters[index], QTime): filter_value = QTimeEdit() else: filter_value = QTimeEdit(table.filters[index]) elif table.types[index] in [16]: if not isinstance(table.filters[index], QDateTime): filter_value = QDateTimeEdit() else: filter_value = QDateTimeEdit(table.filters[index]) else: filter_value = QLineEdit(table.filters[index]) action_filter_value = QWidgetAction(self) action_filter_value.setDefaultWidget(filter_value) menu.addAction(action_filter_operation) menu.addAction(action_filter_value) action_filter_apply = QAction(self.tr('Apply'), self) action_filter_apply.triggered.connect(partial(self.applyFilter, table, index, filter_value, filter_operation)) action_filter_cancel = QAction(self.tr('Cancel'), self) action_filter_cancel.triggered.connect(partial(self.applyFilter, table, index, None, filter_operation)) menu.addAction(action_filter_apply) menu.addAction(action_filter_cancel) menu.exec_(QtGui.QCursor.pos())
def __init__(self, title, yTitle, data, parent=None): QWidget.__init__(self, parent) self.setWindowTitle("TimeSeries viewer") # sort data by x data.sort(key=lambda x: x[0]) formLayout = QFormLayout() # id titleW = QLineEdit(title, self) titleW.setReadOnly(True) formLayout.addRow("ID", titleW) # start and end time sdt = QDateTime.fromString(data[0][2], "yyyy-MM-ddTHH:mm:ss.zZ") edt = QDateTime.fromString(data[-1][2], "yyyy-MM-ddTHH:mm:ss.zZ") startTimeW = QDateTimeEdit(sdt) startTimeW.setReadOnly(True) endTimeW = QDateTimeEdit(edt) endTimeW.setReadOnly(True) formLayout.addRow("Start time", startTimeW) formLayout.addRow("End time", endTimeW) # unit of measure unitW = QLineEdit(yTitle) unitW.setReadOnly(True) formLayout.addRow("Unit", unitW) # min / max value minValue = min([x[1] for x in data]) maxValue = max([x[1] for x in data]) minValueW = QLineEdit(str(minValue)) minValueW.setReadOnly(True) maxValueW = QLineEdit(str(maxValue)) maxValueW.setReadOnly(True) formLayout.addRow("Min value", minValueW) formLayout.addRow("Max value", maxValueW) # the plot layout = QVBoxLayout() self.plot = PlotView(yTitle, self) layout.addLayout(formLayout) layout.addWidget(self.plot) self.setLayout(layout) self.plot.setData(data) self.resize(800, 600)
def createWidget(self): self._combo = QDateTimeEdit() self._combo.setCalendarPopup(True) return self._combo
def _create_widget(cls, c, parent, host=None): dtt = QDateTimeEdit(parent) dtt.setObjectName('{0}_{1}'.format(cls._TYPE_PREFIX, c.name)) dtt.setCalendarPopup(True) # Set ranges if c.min_use_current_datetime: dtt.setMinimumDateTime(datetime.today()) else: dtt.setMinimumDateTime(c.minimum) if c.max_use_current_datetime: dtt.setMaximumDateTime(datetime.today()) else: dtt.setMaximumDateTime(c.maximum) # Set maximum datetime as current datetime dtt.setDateTime(dtt.maximumDateTime()) return dtt