Class constructor for RangeManager Parameters ---------- add_sliders: bool True - the widget will include sliders for controlling the range, False - the widget will have no sliders without sliders slider_steps: int The num
(self, *, name="", add_sliders=False, slider_steps=10000, selection_to_range_min=0.001)
| 470 | selection_changed = Signal(float, float, str) |
| 471 | |
| 472 | def __init__(self, *, name="", add_sliders=False, slider_steps=10000, selection_to_range_min=0.001): |
| 473 | """ |
| 474 | Class constructor for RangeManager |
| 475 | |
| 476 | Parameters |
| 477 | ---------- |
| 478 | add_sliders: bool |
| 479 | True - the widget will include sliders for controlling the range, |
| 480 | False - the widget will have no sliders without sliders |
| 481 | slider_steps: int |
| 482 | The number of slider steps. Determines the precision of the slider. |
| 483 | Default value is sufficient in most cases |
| 484 | selection_to_range_min: float |
| 485 | Minimum ratio of the selected range and total range. Must be floating |
| 486 | point number >=0. Used only when the value type is set to "float": |
| 487 | `self.set_value_type("float")`. Minimum selected range is always 1 |
| 488 | when "int" value type is set. |
| 489 | """ |
| 490 | super().__init__() |
| 491 | |
| 492 | self._name = name |
| 493 | |
| 494 | # Set the maximum number of steps for the sliders (resolution) |
| 495 | self.sld_n_steps = slider_steps |
| 496 | # Ratio of the minimum range and total range. It is used to compute |
| 497 | # the value of 'self._range_min_diff'. The widget will prevent |
| 498 | # range to be set to smaller value than 'self._range_min_diff'. |
| 499 | self._selection_to_range_min = selection_to_range_min |
| 500 | |
| 501 | self._range_low = 0.0 |
| 502 | self._range_high = 100.0 |
| 503 | self._range_min_diff = (self._range_high - self._range_low) * self._selection_to_range_min |
| 504 | self._value_per_step = (self._range_high - self._range_low) / self.sld_n_steps |
| 505 | self._value_type = "float" |
| 506 | |
| 507 | # The following values are used to keep the low and high of the range. |
| 508 | # Those values are 'accepted' values that reflect current selected range. |
| 509 | self._value_low = self._range_low |
| 510 | self._value_high = self._range_high |
| 511 | |
| 512 | max_element_width = 200 |
| 513 | |
| 514 | self.le_min_value = LineEditExtended() |
| 515 | self.le_max_value = LineEditExtended() |
| 516 | self.validator_low = DoubleValidatorRelaxed() |
| 517 | self.validator_high = DoubleValidatorRelaxed() |
| 518 | |
| 519 | self.le_min_value.setMaximumWidth(max_element_width) |
| 520 | self.le_min_value.textEdited.connect(self.le_min_value_text_edited) |
| 521 | self.le_min_value.textChanged.connect(self.le_min_value_text_changed) |
| 522 | self.le_min_value.editingFinished.connect(self.le_min_value_editing_finished) |
| 523 | self.le_max_value.setMaximumWidth(max_element_width) |
| 524 | self.le_max_value.textEdited.connect(self.le_max_value_text_edited) |
| 525 | self.le_max_value.textChanged.connect(self.le_max_value_text_changed) |
| 526 | self.le_max_value.editingFinished.connect(self.le_max_value_editing_finished) |
| 527 | |
| 528 | self.le_min_value.setAlignment(Qt.AlignRight | Qt.AlignVCenter) |
| 529 | self.le_max_value.setAlignment(Qt.AlignRight | Qt.AlignVCenter) |
nothing calls this directly
no test coverage detected