from PyQt6.QtWidgets import QWidget, QLabel, QVBoxLayout from PyQt6.QtGui import QPixmap class GridElement(QWidget): def __init__(self, parent: QWidget = None, name: str = None, image: str = "", linked_object: object = None) -> None: super().__init__(parent) self.image = QPixmap(image) self.image_path = image self.name = name self.linked_object = linked_object self.setup_ui() def setup_ui(self) -> None: layout = QVBoxLayout(self) self.image_label = QLabel(self) self.image_label.setPixmap(self.image) self.name_label = QLabel(self.name, self) self.name_label.setAccessibleName("ignore") self.name_label.setObjectName("text_label") layout.addWidget(self.image_label) layout.addWidget(self.name_label) self.set_image_size(70, 70) # Set default image size def set_image(self, image: str) -> None: self.image = QPixmap(image) self.image_path = image def set_name(self, name: str) -> None: self.name = name def set_linked_object(self, linked_object: object) -> None: self.linked_object = linked_object def set_image_size(self, width: int, height: int) -> None: self.image = self.image.scaled(width, height) self.image_label.setPixmap(self.image) def get_image(self) -> QPixmap: return self.image def get_image_path(self) -> str: return self.image_path def get_name(self) -> str: return self.name def get_linked_object(self) -> object: return self.linked_object