コード例 #1
0
ファイル: datetime_widget.py プロジェクト: majbrittws/FIRE
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)
コード例 #2
0
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
コード例 #3
0
 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
コード例 #4
0
ファイル: AttributesTable.py プロジェクト: jeremyk6/qgeric
 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())
コード例 #5
0
    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)
コード例 #6
0
ファイル: datetime_widget.py プロジェクト: majbrittws/FIRE
    def createWidget(self):
        self._combo = QDateTimeEdit()
        self._combo.setCalendarPopup(True)

        return self._combo
コード例 #7
0
ファイル: widgets.py プロジェクト: ollawone/stdm
    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