"""A layout containing a widget with an associated label.""" from typing import Optional from PySide6.QtCore import Qt from PySide6.QtWidgets import QHBoxLayout, QLabel, QWidget class QLabeledWidget(QHBoxLayout): """A layout containing a widget with an associated label. Best used for vertical forms, where the given widget is the input and the label is used to name the input. """ def __init__( self, text: str, widget: QWidget, tooltip: Optional[str] = None ) -> None: super().__init__() label = QLabel(text) self.addWidget(label) self.addStretch() self.addWidget(widget, alignment=Qt.AlignRight) if tooltip is not None: label.setToolTip(tooltip) widget.setToolTip(tooltip)