Merge build settings page layout options

This commit is contained in:
Veronica Berglyd Olsen
2024-10-17 21:56:35 +02:00
parent c82f7fd9ca
commit bffab79ba7
4 changed files with 62 additions and 25 deletions
+19 -6
View File
@@ -180,9 +180,16 @@ class NScrollableForm(QScrollArea):
self._sections[identifier] = qLabel
return
def addRow(self, label: str, widget: QWidget | list[QWidget], helpText: str = "",
unit: str | None = None, button: QWidget | None = None, editable: str | None = None,
stretch: tuple[int, int] = (1, 0)) -> None:
def addRow(
self,
label: str | None,
widget: QWidget | list[QWidget | str | int],
helpText: str = "",
unit: str | None = None,
button: QWidget | None = None,
editable: str | None = None,
stretch: tuple[int, int] = (1, 0),
) -> None:
"""Add a label and a widget as a new row of the form."""
row = QHBoxLayout()
row.setSpacing(CONFIG.pxInt(12))
@@ -191,13 +198,18 @@ class NScrollableForm(QScrollArea):
wBox = QHBoxLayout()
wBox.setContentsMargins(0, 0, 0, 0)
for item in widget:
wBox.addWidget(item)
if isinstance(item, QWidget):
wBox.addWidget(item)
elif isinstance(item, str):
wBox.addWidget(QLabel(item, self))
elif isinstance(item, int):
wBox.addSpacing(CONFIG.pxInt(item))
qWidget = QWidget(self)
qWidget.setLayout(wBox)
else:
qWidget = widget
qLabel = QLabel(label, self)
qLabel = QLabel(label or "", self)
qLabel.setIndent(self._indent)
qLabel.setBuddy(qWidget)
@@ -230,7 +242,8 @@ class NScrollableForm(QScrollArea):
row.addWidget(qWidget, stretch[1])
self._layout.addLayout(row)
self._index[label.strip()] = qWidget
if label:
self._index[label.strip()] = qWidget
self._first = False
return
+13 -1
View File
@@ -136,9 +136,21 @@ class NSpinBox(QSpinBox):
class NDoubleSpinBox(QDoubleSpinBox):
def __init__(self, parent: QWidget | None = None) -> None:
def __init__(
self,
parent: QWidget | None = None,
*,
min: float = 0.0,
max: float = 15.0,
step: float = 0.1,
prec: int = 2,
) -> None:
super().__init__(parent=parent)
self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
self.setMinimum(min)
self.setMaximum(max)
self.setSingleStep(step)
self.setDecimals(prec)
return
def wheelEvent(self, event: QWheelEvent) -> None: