from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel, QLineEdit, QSpacerItem class MetadataInput(QWidget): def __init__(self, elements: list[tuple[str, str]]=None): super().__init__() self.layout = QVBoxLayout() self.elements = [] if elements is not None: for (n, v) in elements: self.addElement(n, v) self.layout.addStretch() self.setLayout(self.layout) def addElement(self, name, init_val=""): self.elements.append((name, init_val)) self.layout.addWidget(QLabel(name)) self.layout.addWidget(QLineEdit(init_val)) self.layout.addItem(QSpacerItem(0, 1))