Thema-Wechsel
This commit is contained in:
+56
-2
@@ -3,8 +3,8 @@ import os
|
|||||||
|
|
||||||
import pymupdf # PyMuPDF
|
import pymupdf # PyMuPDF
|
||||||
from PySide6.QtCore import Qt
|
from PySide6.QtCore import Qt
|
||||||
from PySide6.QtGui import QCursor, QPixmap, QImage, QPainter
|
from PySide6.QtGui import QCursor, QPixmap, QImage, QPainter, QAction
|
||||||
from PySide6.QtWidgets import QLabel, QMainWindow
|
from PySide6.QtWidgets import QLabel, QMainWindow, QApplication, QStyleFactory
|
||||||
|
|
||||||
from ui.MainWinddow_ui import Ui_MainWindow
|
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.drag_threshold = 3 # Mindestbewegung in Pixeln vor dem Scrollen
|
||||||
self.scroll_sensitivity = 0.7 # Reduzierte Empfindlichkeit für sanfteres Scrollen
|
self.scroll_sensitivity = 0.7 # Reduzierte Empfindlichkeit für sanfteres Scrollen
|
||||||
|
|
||||||
|
# Theme-Menü initialisieren
|
||||||
|
self._setup_theme_menu()
|
||||||
|
|
||||||
# Bilder laden
|
# Bilder laden
|
||||||
self._load_images()
|
self._load_images()
|
||||||
|
|
||||||
# Signale und Slots verbinden
|
# Signale und Slots verbinden
|
||||||
self._connect_signals()
|
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):
|
def _load_images(self):
|
||||||
"""Lädt PDF-Seiten aus den drei Unterordnern ref, diff und new."""
|
"""Lädt PDF-Seiten aus den drei Unterordnern ref, diff und new."""
|
||||||
# Entferne bestehende Widgets aus den Layouts
|
# Entferne bestehende Widgets aus den Layouts
|
||||||
|
|||||||
@@ -322,7 +322,13 @@
|
|||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionBeenden"/>
|
<addaction name="actionBeenden"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QMenu" name="menuThema">
|
||||||
|
<property name="title">
|
||||||
|
<string>Thema</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
<addaction name="menuProjekt"/>
|
<addaction name="menuProjekt"/>
|
||||||
|
<addaction name="menuThema"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QStatusBar" name="statusbar"/>
|
<widget class="QStatusBar" name="statusbar"/>
|
||||||
<action name="actionNeu">
|
<action name="actionNeu">
|
||||||
|
|||||||
@@ -221,12 +221,15 @@ class Ui_MainWindow(object):
|
|||||||
self.menubar.setGeometry(QRect(0, 0, 1263, 33))
|
self.menubar.setGeometry(QRect(0, 0, 1263, 33))
|
||||||
self.menuProjekt = QMenu(self.menubar)
|
self.menuProjekt = QMenu(self.menubar)
|
||||||
self.menuProjekt.setObjectName(u"menuProjekt")
|
self.menuProjekt.setObjectName(u"menuProjekt")
|
||||||
|
self.menuThema = QMenu(self.menubar)
|
||||||
|
self.menuThema.setObjectName(u"menuThema")
|
||||||
MainWindow.setMenuBar(self.menubar)
|
MainWindow.setMenuBar(self.menubar)
|
||||||
self.statusbar = QStatusBar(MainWindow)
|
self.statusbar = QStatusBar(MainWindow)
|
||||||
self.statusbar.setObjectName(u"statusbar")
|
self.statusbar.setObjectName(u"statusbar")
|
||||||
MainWindow.setStatusBar(self.statusbar)
|
MainWindow.setStatusBar(self.statusbar)
|
||||||
|
|
||||||
self.menubar.addAction(self.menuProjekt.menuAction())
|
self.menubar.addAction(self.menuProjekt.menuAction())
|
||||||
|
self.menubar.addAction(self.menuThema.menuAction())
|
||||||
self.menuProjekt.addAction(self.actionNeu)
|
self.menuProjekt.addAction(self.actionNeu)
|
||||||
self.menuProjekt.addAction(self.action_ffnen)
|
self.menuProjekt.addAction(self.action_ffnen)
|
||||||
self.menuProjekt.addSeparator()
|
self.menuProjekt.addSeparator()
|
||||||
@@ -259,5 +262,6 @@ class Ui_MainWindow(object):
|
|||||||
self.label_3.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
|
self.label_3.setText(QCoreApplication.translate("MainWindow", u"TextLabel", None))
|
||||||
self.label_4.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.menuProjekt.setTitle(QCoreApplication.translate("MainWindow", u"Projekt", None))
|
||||||
|
self.menuThema.setTitle(QCoreApplication.translate("MainWindow", u"Thema", None))
|
||||||
# retranslateUi
|
# retranslateUi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user