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
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user