generated from LouisMazin/PythonApplicationTemplate
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
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 |