UI: PDF-Thumbnails kompakt und zentriert anzeigen

- Thumbnails horizontal zentriert im ScrollArea-Layout
- Layout-Spacing auf 5px reduziert für kompakte Darstellung
- Seitennummer-Labels auf 18px Höhe begrenzt
- Ränder um Layout und Labels entfernt
- Expandierenden Spacer am Ende hinzugefügt, damit Thumbnails oben bleiben
- Verbesserte Übersichtlichkeit der Thumbnail-Navigation
This commit is contained in:
2026-02-01 15:06:22 +01:00
parent 3bdc0a0daa
commit 0f14418749
+12 -1
View File
@@ -16,7 +16,7 @@ from pathlib import Path
from PySide6.QtCore import Qt, QSize, QUrl from PySide6.QtCore import Qt, QSize, QUrl
from PySide6.QtGui import QCursor, QPixmap, QPainter, QDesktopServices from PySide6.QtGui import QCursor, QPixmap, QPainter, QDesktopServices
from PySide6.QtWidgets import QLabel, QMessageBox from PySide6.QtWidgets import QLabel, QMessageBox, QSpacerItem, QSizePolicy
from PySide6.QtPdf import QPdfDocument from PySide6.QtPdf import QPdfDocument
@@ -343,6 +343,10 @@ class PdfViewerMixin:
self._clear_layout(self.ui.verticalLayout_2) self._clear_layout(self.ui.verticalLayout_2)
self._clear_layout(self.ui.verticalLayout_3) self._clear_layout(self.ui.verticalLayout_3)
# Setze kompaktes Spacing für Thumbnail-Layout
self.ui.verticalLayout_2.setSpacing(5) # Minimaler Abstand zwischen Widgets
self.ui.verticalLayout_2.setContentsMargins(0, 0, 0, 0) # Keine Ränder
# Dicts zurücksetzen # Dicts zurücksetzen
self.thumbnail_to_page = {} self.thumbnail_to_page = {}
self.pdf_documents = {} self.pdf_documents = {}
@@ -413,11 +417,14 @@ class PdfViewerMixin:
thumbnail.setPixmap(diff_pixmap.scaledToWidth(200, Qt.TransformationMode.SmoothTransformation)) thumbnail.setPixmap(diff_pixmap.scaledToWidth(200, Qt.TransformationMode.SmoothTransformation))
thumbnail.setCursor(QCursor(Qt.CursorShape.PointingHandCursor)) thumbnail.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
thumbnail.setMouseTracking(True) thumbnail.setMouseTracking(True)
thumbnail.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ui.verticalLayout_2.addWidget(thumbnail) self.ui.verticalLayout_2.addWidget(thumbnail)
# Seitennummer für Thumbnail anzeigen # Seitennummer für Thumbnail anzeigen
thumbnail_info = QLabel(f"Seite {page_num + 1}") thumbnail_info = QLabel(f"Seite {page_num + 1}")
thumbnail_info.setAlignment(Qt.AlignmentFlag.AlignCenter) thumbnail_info.setAlignment(Qt.AlignmentFlag.AlignCenter)
thumbnail_info.setMaximumHeight(18) # Kompakte Höhe
thumbnail_info.setContentsMargins(0, 0, 0, 0) # Keine Ränder
self.ui.verticalLayout_2.addWidget(thumbnail_info) self.ui.verticalLayout_2.addWidget(thumbnail_info)
# Beziehung zwischen Thumbnail und Seitennummer speichern # Beziehung zwischen Thumbnail und Seitennummer speichern
@@ -426,6 +433,10 @@ class PdfViewerMixin:
# Click-Event für das Thumbnail einrichten # Click-Event für das Thumbnail einrichten
thumbnail.mousePressEvent = lambda event, t=thumbnail: self.on_thumbnail_clicked(event, t) thumbnail.mousePressEvent = lambda event, t=thumbnail: self.on_thumbnail_clicked(event, t)
# Füge expandierenden Spacer am Ende hinzu, damit Thumbnails oben bleiben
spacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.ui.verticalLayout_2.addItem(spacer)
# Erstelle das Vollbild-Label für die rechte Spalte (falls noch nicht vorhanden) # Erstelle das Vollbild-Label für die rechte Spalte (falls noch nicht vorhanden)
if self.fullsize_label is None: if self.fullsize_label is None:
self.fullsize_label = QLabel() self.fullsize_label = QLabel()