Louis Mazin a08f5b4d1d rebuild
2026-06-28 17:34:34 +02:00

31 lines
1.2 KiB
Python

from PyQt6.QtWidgets import QWidget
from PyQt6.QtCore import Qt
from app.ui.layouts.flow_layout import FlowLayout, JustifyMode, LastRowMode
from app.ui.widgets.grid_element import GridElement
class GridWidget(QWidget):
def __init__(self, elements: list[GridElement] = [], parent=None) -> None:
super().__init__(parent)
self.elements = elements
self.setup_ui()
def setup_ui(self) -> None:
layout = FlowLayout(self, justify_mode=JustifyMode.SPACE_BETWEEN, last_row_mode=LastRowMode.MATCH_PREVIOUS)
layout.setAlignment(Qt.AlignmentFlag.AlignCenter)
if self.elements:
for element in self.elements:
layout.addWidget(element)
else:
for _ in range(5000): # Add 58 placeholder elements
layout.addWidget(GridElement(self, name="Placeholder", image="data/assets/icon.png"))
def add_element(self, element: GridElement) -> None:
layout: FlowLayout = self.layout()
layout.addWidget(element)
def remove_element(self, element: GridElement) -> None:
layout: FlowLayout = self.layout()
layout.removeWidget(element)
element.setParent(None)