Added DoubleSpinnerOptionUI

This commit is contained in:
David Robertson
2020-05-03 02:27:17 +01:00
parent 1fdd0c26e0
commit f3bdaf8023

View File

@@ -2,7 +2,7 @@ from typing import Union
from PyQt5 import QtWidgets
from flatcamGUI.GUIElements import RadioSet, FCCheckBox, FCButton, FCComboBox, FCEntry, FCSpinner, FCColorEntry, \
FCSliderWithSpinner
FCSliderWithSpinner, FCDoubleSpinner
import gettext
import FlatCAMTranslation as fcTranslate
@@ -108,14 +108,37 @@ class ColorOptionUI(BasicOptionUI):
class SliderWithSpinnerOptionUI(BasicOptionUI):
def __init__(self, option: str, label_text: str, label_tooltip: str, min=0, max=100, step=1):
self.min = min
self.max = max
def __init__(self, option: str, label_text: str, label_tooltip: str, min_value=0, max_value=100, step=1):
self.min_value = min_value
self.max_value = max_value
self.step = step
super().__init__(option=option, label_text=label_text, label_tooltip=label_tooltip)
def build_entry_widget(self) -> QtWidgets.QWidget:
entry = FCSliderWithSpinner(min=self.min, max=self.max, step=self.step)
entry = FCSliderWithSpinner(min=self.min_value, max=self.max_value, step=self.step)
return entry
class DoubleSpinnerOptionUI(BasicOptionUI):
def __init__(self, option: str, label_text: str, label_tooltip: str, step: float, decimals: int, min_value=None, max_value=None):
self.min_value = min_value
self.max_value = max_value
self.step = step
self.decimals = decimals
super().__init__(option=option, label_text=label_text, label_tooltip=label_tooltip)
def build_entry_widget(self) -> QtWidgets.QWidget:
entry = FCDoubleSpinner()
entry.set_precision(self.decimals)
entry.setSingleStep(self.step)
if self.min_value is None:
self.min_value = entry.minimum()
else:
entry.setMinimum(self.min_value)
if self.max_value is None:
self.max_value = entry.maximum()
else:
entry.setMaximum(self.max_value)
return entry