from PyQt6.QtCore import * from PyQt6.QtGui import * from PyQt6.QtWidgets import * from ..core.widget import set_contents_margins class QXVBoxLayout(QVBoxLayout): def __init__(self, widgets=None, contents_margins=0, spacing=0): super().__init__() set_contents_margins(self, contents_margins) if widgets is not None: for widget in widgets: alignment = None if isinstance(widget, int): thickness=widget widget = QWidget() widget.setFixedHeight(thickness) widget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed) if isinstance(widget, (tuple,list)): widget, alignment = widget if isinstance(widget, QLayout): self.addLayout(widget) else: self.addWidget(widget) if alignment is not None: self.setAlignment(widget, alignment) if spacing is not None: self.setSpacing(spacing)