Thema-Wechsel
This commit is contained in:
+56
-2
@@ -3,8 +3,8 @@ import os
|
||||
|
||||
import pymupdf # PyMuPDF
|
||||
from PySide6.QtCore import Qt
|
||||
from PySide6.QtGui import QCursor, QPixmap, QImage, QPainter
|
||||
from PySide6.QtWidgets import QLabel, QMainWindow
|
||||
from PySide6.QtGui import QCursor, QPixmap, QImage, QPainter, QAction
|
||||
from PySide6.QtWidgets import QLabel, QMainWindow, QApplication, QStyleFactory
|
||||
|
||||
from ui.MainWinddow_ui import Ui_MainWindow
|
||||
|
||||
@@ -40,12 +40,66 @@ class MainWindow(QMainWindow):
|
||||
self.drag_threshold = 3 # Mindestbewegung in Pixeln vor dem Scrollen
|
||||
self.scroll_sensitivity = 0.7 # Reduzierte Empfindlichkeit für sanfteres Scrollen
|
||||
|
||||
# Theme-Menü initialisieren
|
||||
self._setup_theme_menu()
|
||||
|
||||
# Bilder laden
|
||||
self._load_images()
|
||||
|
||||
# Signale und Slots verbinden
|
||||
self._connect_signals()
|
||||
|
||||
def _setup_theme_menu(self):
|
||||
"""Initialisiert das Theme-Menü mit verfügbaren Themes."""
|
||||
# Hole alle verfügbaren Themes
|
||||
available_themes = QStyleFactory.keys()
|
||||
current_theme = QApplication.style().objectName()
|
||||
|
||||
print(f"Verfügbare Themes: {available_themes}")
|
||||
print(f"Aktuelles Theme: {current_theme}")
|
||||
|
||||
# Füge Theme-Aktionen zum Menü hinzu
|
||||
for theme_name in available_themes:
|
||||
action = QAction(theme_name, self)
|
||||
action.setCheckable(True)
|
||||
|
||||
# Markiere das aktuelle Theme
|
||||
if theme_name.lower() == current_theme.lower():
|
||||
action.setChecked(True)
|
||||
|
||||
# Verbinde die Aktion mit der Theme-Wechsel-Funktion
|
||||
action.triggered.connect(lambda checked, theme=theme_name: self.change_theme(theme))
|
||||
|
||||
# Füge die Aktion zum Theme-Menü hinzu
|
||||
self.ui.menuThema.addAction(action)
|
||||
|
||||
def change_theme(self, theme_name):
|
||||
"""
|
||||
Wechselt das Theme der Anwendung.
|
||||
|
||||
Args:
|
||||
theme_name: Name des zu verwendenden Themes
|
||||
"""
|
||||
print(f"Wechsle zu Theme: {theme_name}")
|
||||
|
||||
try:
|
||||
# Erstelle den neuen Style
|
||||
style = QStyleFactory.create(theme_name)
|
||||
if style:
|
||||
# Wende den neuen Style auf die Anwendung an
|
||||
QApplication.setStyle(style)
|
||||
|
||||
# Aktualisiere die Checkmarks im Menü
|
||||
for action in self.ui.menuThema.actions():
|
||||
action.setChecked(action.text() == theme_name)
|
||||
|
||||
print(f"Theme erfolgreich gewechselt zu: {theme_name}")
|
||||
else:
|
||||
print(f"Fehler: Theme '{theme_name}' konnte nicht erstellt werden")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Wechseln des Themes: {e}")
|
||||
|
||||
def _load_images(self):
|
||||
"""Lädt PDF-Seiten aus den drei Unterordnern ref, diff und new."""
|
||||
# Entferne bestehende Widgets aus den Layouts
|
||||
|
||||
Reference in New Issue
Block a user