diff --git a/src/MainWindow.py b/src/MainWindow.py
index 58a2ff5..0673f12 100644
--- a/src/MainWindow.py
+++ b/src/MainWindow.py
@@ -1,7 +1,8 @@
import os
-from PySide6.QtWidgets import QMainWindow
-from PySide6.QtGui import QPixmap
-# from PySide6.QtCore import Qt
+import glob
+from PySide6.QtWidgets import QMainWindow, QLabel
+from PySide6.QtGui import QPixmap, QCursor
+from PySide6.QtCore import Qt
from ui.MainWinddow_ui import Ui_MainWindow
@@ -19,42 +20,85 @@ class MainWindow(QMainWindow):
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
- # Bilder korrekt laden
+ # Dict zum Speichern der Beziehung zwischen Thumbnails und großen Bildern
+ self.thumbnail_to_full_image = {}
+
+ # Bilder laden
self._load_images()
# Signale und Slots verbinden
self._connect_signals()
def _load_images(self):
- """Lädt die Bilder mit absoluten Pfaden."""
+ """Lädt alle GIF-Dateien aus dem Ressourcen-Verzeichnis."""
+ # Entferne bestehende Widgets aus den Layouts
+ self._clear_layout(self.ui.verticalLayout_2)
+ self._clear_layout(self.ui.verticalLayout_3)
+
+ # Pfad zum Ressourcen-Ordner
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ res_dir = os.path.join(base_dir, "src", "ui", "res")
- # Absolute Pfade zu den Bildern erstellen
- img1_path = os.path.join(base_dir, "src", "ui", "res", "graf_1.gif")
- img2_path = os.path.join(base_dir, "src", "ui", "res", "graf_3.gif")
+ # Alle GIF-Dateien finden
+ gif_files = glob.glob(os.path.join(res_dir, "*.gif"))
+ gif_files.sort() # Dateien alphabetisch sortieren
- print(repr(self.ui.label), img2_path)
+ print(f"Gefundene GIF-Dateien: {gif_files}")
- # Bilder setzen, wenn die Dateien existieren
- if os.path.exists(img1_path):
- self.ui.label.setPixmap(QPixmap(img1_path).scaledToWidth(200))
- self.ui.label_3.setPixmap(QPixmap(img1_path))
- else:
- self.ui.label.setText(f"Fehler: Bild nicht gefunden: {img1_path}")
- self.ui.label_3.setText(f"Fehler: Bild nicht gefunden: {img1_path}")
+ # Für jede GIF-Datei:
+ for gif_file in gif_files:
+ filename = os.path.basename(gif_file)
- if os.path.exists(img2_path):
- self.ui.label_2.setPixmap(QPixmap(img2_path).scaledToWidth(200))
- self.ui.label_4.setPixmap(QPixmap(img2_path))
- else:
- self.ui.label_2.setText(f"Fehler: Bild nicht gefunden: {img2_path}")
- self.ui.label_4.setText(f"Fehler: Bild nicht gefunden: {img2_path}")
+ # Thumbnail erstellen und zur linken Spalte hinzufügen
+ thumbnail = QLabel()
+ thumbnail.setObjectName(f"thumbnail_{filename}")
+ thumbnail.setPixmap(QPixmap(gif_file).scaledToWidth(200))
+ thumbnail.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+ thumbnail.setMouseTracking(True)
+ self.ui.verticalLayout_2.addWidget(thumbnail)
+
+ # Vollbild-Version erstellen und zur rechten Spalte hinzufügen
+ fullsize = QLabel()
+ fullsize.setObjectName(f"fullsize_{filename}")
+ fullsize.setPixmap(QPixmap(gif_file))
+ self.ui.verticalLayout_3.addWidget(fullsize)
+
+ # Beziehung zwischen Thumbnail und Vollbild speichern
+ self.thumbnail_to_full_image[thumbnail] = fullsize
+
+ # Click-Event für das Thumbnail einrichten
+ thumbnail.mousePressEvent = lambda event, t=thumbnail: self.on_thumbnail_clicked(event, t)
+
+ def _clear_layout(self, layout):
+ """Entfernt alle Widgets aus einem Layout."""
+ if layout is not None:
+ while layout.count():
+ item = layout.takeAt(0)
+ widget = item.widget()
+ if widget is not None:
+ widget.deleteLater()
def _connect_signals(self):
"""Verbindet Signale mit den entsprechenden Slots."""
- # Beispiel für Signal-Verbindung:
+ # Button-Klicks verbinden
# self.ui.pushButton.clicked.connect(self.on_button_clicked)
- # Beispiel für einen Slot:
- # def on_button_clicked(self):
- # print("Button wurde geklickt!")
+ def on_button_clicked(self):
+ """Wird ausgeführt, wenn der Button geklickt wird."""
+ print("Button wurde geklickt!")
+ # Hier kann die gewünschte Aktion für den Button definiert werden
+
+ def on_thumbnail_clicked(self, event, thumbnail):
+ """
+ Wird ausgeführt, wenn ein Thumbnail angeklickt wird.
+
+ Args:
+ event: Das Maus-Event
+ thumbnail: Das geklickte Thumbnail-Label
+ """
+ print(f"Thumbnail {thumbnail.objectName()} wurde angeklickt: {event}")
+
+ # Zum entsprechenden Vollbild scrollen
+ full_image = self.thumbnail_to_full_image.get(thumbnail)
+ if full_image:
+ self.ui.scrollArea_2.ensureWidgetVisible(full_image)
diff --git a/src/ui/MainWinddow.ui b/src/ui/MainWinddow.ui
index 4dbb153..01e1b4c 100644
--- a/src/ui/MainWinddow.ui
+++ b/src/ui/MainWinddow.ui
@@ -59,19 +59,6 @@
QFrame::Shadow::Raised
- -
-
-
- Qt::Orientation::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
@@ -98,6 +85,19 @@
+ -
+
+
+ Qt::Orientation::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
@@ -120,8 +120,8 @@
0
0
- 2480
- 7070
+ 574
+ 847
@@ -130,9 +130,6 @@
-
- res/graf_1.gif
-
-
@@ -140,9 +137,6 @@
-
- res/graf_3.gif
-
-
diff --git a/src/ui/MainWinddow_ui.py b/src/ui/MainWinddow_ui.py
index 04d9c12..bfeb679 100644
--- a/src/ui/MainWinddow_ui.py
+++ b/src/ui/MainWinddow_ui.py
@@ -60,10 +60,6 @@ class Ui_MainWindow(object):
self.frame_2.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_2 = QHBoxLayout(self.frame_2)
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
- self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
-
- self.horizontalLayout_2.addItem(self.horizontalSpacer)
-
self.pushButton = QPushButton(self.frame_2)
self.pushButton.setObjectName(u"pushButton")
self.pushButton.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
@@ -80,6 +76,10 @@ class Ui_MainWindow(object):
self.horizontalLayout_2.addWidget(self.pushButton_2)
+ self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+
+ self.horizontalLayout_2.addItem(self.horizontalSpacer)
+
self.verticalLayout.addWidget(self.frame_2)
@@ -96,18 +96,16 @@ class Ui_MainWindow(object):
self.scrollArea.setWidgetResizable(True)
self.scrollAreaWidgetContents = QWidget()
self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
- self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 2480, 7070))
+ self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 574, 847))
self.verticalLayout_2 = QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.label = QLabel(self.scrollAreaWidgetContents)
self.label.setObjectName(u"label")
- self.label.setPixmap(QPixmap(u"res/graf_1.gif"))
self.verticalLayout_2.addWidget(self.label)
self.label_2 = QLabel(self.scrollAreaWidgetContents)
self.label_2.setObjectName(u"label_2")
- self.label_2.setPixmap(QPixmap(u"res/graf_3.gif"))
self.verticalLayout_2.addWidget(self.label_2)