def __init__(self, parent, model, cli_iface, store_callback):
super(ConfigParamEditWindow, self).__init__(parent)
self.setAttribute(Qt.WA_DeleteOnClose)
self.setWindowTitle('Edit Parameter')
self.setModal(True)
self._model = model
self._cli_iface = cli_iface
self._store_callback = store_callback
name_label = QLabel(model.name, self)
name_label.setFont(get_monospace_font())
if model.type is bool:
self._value = QCheckBox(self)
self._value.setChecked(model.value)
elif model.type is int:
self._value = QSpinBox(self)
if model.minimum is not None:
self._value.setRange(model.minimum,
model.maximum)
else:
self._value.setRange(-0x80000000,
+0x7FFFFFFF)
self._value.setValue(model.value)
elif model.type is float:
self._value = QDoubleSpinBox(self)
if model.minimum is not None:
self._value.setRange(model.minimum,
model.maximum)
else:
self._value.setRange(-3.4028235e+38,
+3.4028235e+38)
self._value.setValue(model.value)
elif model.type is str:
self._value = QLineEdit(self)
self._value.setText(model.value)
else:
raise ValueError('Unsupported value type %r' % model.type)
self._ok_button = make_icon_button('check', 'Send changes to the device', self,
text='OK', on_clicked=self._do_ok)
self._cancel_button = make_icon_button('remove', 'Discard changes and close this window', self,
text='Cancel', on_clicked=self.close)
layout = QVBoxLayout(self)
value_layout = QHBoxLayout(self)
value_layout.addWidget(name_label)
value_layout.addWidget(self._value, 1)
controls_layout = QHBoxLayout(self)
controls_layout.addWidget(self._cancel_button)
controls_layout.addWidget(self._ok_button)
layout.addLayout(value_layout)
layout.addLayout(controls_layout)
self.setLayout(layout)
评论列表
文章目录