def __init__(self, parent): QtWidgets.QFrame.__init__(self, parent) self._direction = self._vertical self._layout = layout = QtWidgets.QBoxLayout(self._direction) layout.setSpacing(defs.spacing) qtutils.set_margin(layout, defs.margin) self.setLayout(layout) policy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) self.setSizePolicy(policy) self.setMinimumSize(QtCore.QSize(10, 10)) self.aspect_ratio = 0.8
def create_group_box(title, *widgets_or_layouts, direction=None): if direction is None: direction = QtWidgets.QBoxLayout.TopToBottom layout = QtWidgets.QBoxLayout(direction) layout.setContentsMargins(0, 0, 0, 0) for item in widgets_or_layouts: if isinstance(item, QtWidgets.QWidget): layout.addWidget(item) elif isinstance(item, QtWidgets.QLayout): layout.addLayout(item) box = QtWidgets.QGroupBox(title) box.setLayout(layout) return box
def create_scroll_area(*widgets_or_layouts, direction=None): if direction is None: direction = QtWidgets.QBoxLayout.TopToBottom layout = QtWidgets.QBoxLayout(direction) layout.setContentsMargins(0, 0, 0, 0) for item in widgets_or_layouts: if isinstance(item, QtWidgets.QWidget): layout.addWidget(item) elif isinstance(item, QtWidgets.QLayout): layout.addLayout(item) widget = QtWidgets.QWidget() widget.setLayout(layout) area = QtWidgets.QScrollArea() area.setWidgetResizable(True) area.setWidget(widget) return area
def __init__(self, minimum=0, maximum=99, decimals=0, parent=None): super().__init__(parent) # Widgets self.spinbox = QtWidgets.QDoubleSpinBox() self.slider = QtWidgets.QSlider() self._min = QtWidgets.QLabel("0") self._max = QtWidgets.QLabel("99") self._value = 0 # Check Inputs self.setDecimals(decimals) self.setRange(minimum, maximum) self.setValue(minimum) # Create the layout self.main_layout = QtWidgets.QBoxLayout( QtWidgets.QBoxLayout.LeftToRight) self.setLayout(self.main_layout) self.setContentsMargins(0, 0, 0, 0) self.main_layout.setContentsMargins(0, 0, 0, 0) self.main_layout.addWidget(self.spinbox) self.main_layout.addWidget(self._min) self.main_layout.addWidget(self.slider) self.main_layout.addWidget(self._max) # Style self.setOrientation(QtCore.Qt.Horizontal) self.slider.setFocusPolicy( QtCore.Qt.NoFocus) # Keyboard up and down -> spinbox # Signals self.slider.actionTriggered.connect(self.actionTriggered.emit) self.slider.rangeChanged.connect(self.rangeChanged.emit) self.slider.sliderMoved.connect(self.sliderMoved.emit) self.slider.sliderPressed.connect(self.sliderPressed.emit) self.slider.sliderReleased.connect(self.sliderReleased.emit) self.slider.valueChanged.connect(self._value_changed) self.spinbox.valueChanged.connect(self._value_changed)