Thema-Wechsel

This commit is contained in:
2025-05-27 20:48:21 +02:00
parent 0892337e68
commit db5a8b5fbc
3 changed files with 66 additions and 2 deletions
+56 -2
View File
@@ -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
+6
View File
@@ -322,7 +322,13 @@
<addaction name="separator"/>
<addaction name="actionBeenden"/>
</widget>
<widget class="QMenu" name="menuThema">
<property name="title">
<string>Thema</string>
</property>
</widget>
<addaction name="menuProjekt"/>
<addaction name="menuThema"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionNeu">
+4
View File
@@ -221,12 +221,15 @@ class Ui_MainWindow(object):
self.menubar.setGeometry(QRect(0, 0, 1263, 33))
self.menuProjekt = QMenu(self.menubar)
self.menuProjekt.setObjectName(u"menuProjekt")
self.menuThema = QMenu(self.menubar)
self.menuThema.setObjectName(u"menuThema")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menuProjekt.menuAction())
self.menubar.addAction(self.menuThema.menuAction())
self.menuProjekt.addAction(self.actionNeu)
self.menuProjekt.addAction(self.action_ffnen)
self.menuProjekt.addSeparator()
@@ -259,5 +262,6 @@ class Ui_MainWindow(object):
self.label_3.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
self.label_4.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
self.menuProjekt.setTitle(QCoreApplication.translate("MainWindow", u"Projekt", None))
self.menuThema.setTitle(QCoreApplication.translate("MainWindow", u"Thema", None))
# retranslateUi