import sys from PySide6.QtWidgets import QApplication from PySide6.QtGui import QPalette, QColor from PySide6.QtCore import Qt def set_dark_theme(app: QApplication): """Definiuje i stosuje ciemną paletę kolorów do aplikacji.""" # 1. Upewnij się, że styl jest ustawiony na "Fusion" app.setStyle('Fusion') # 2. Definicja kolorów dla ciemnego motywu palette = QPalette() # Kolory tła DARK_GRAY = QColor(45, 45, 45) # Ogólne tło okien i widżetów (Base, Window) LIGHT_GRAY = QColor(53, 53, 53) # Tło elementów, np. toolbara, menu (Window) VERY_DARK_GRAY = QColor(32, 32, 32) # Kolor tła dla kontrolek (Button) # Kolory tekstu i obramowań WHITE = QColor(200, 200, 200) # Główny kolor tekstu (Text, WindowText) HIGHLIGHT = QColor(66, 135, 245) # Kolor podświetlenia (Highlight) # Ustawienie głównej palety # palette.setColor(QPalette.ColorRole.Window, LIGHT_GRAY) palette.setColor(QPalette.ColorRole.Window, VERY_DARK_GRAY) palette.setColor(QPalette.ColorRole.WindowText, WHITE) palette.setColor(QPalette.ColorRole.Base, DARK_GRAY) palette.setColor(QPalette.ColorRole.AlternateBase, LIGHT_GRAY) palette.setColor(QPalette.ColorRole.ToolTipBase, WHITE) palette.setColor(QPalette.ColorRole.ToolTipText, WHITE) palette.setColor(QPalette.ColorRole.Text, WHITE) palette.setColor(QPalette.ColorRole.Button, VERY_DARK_GRAY) palette.setColor(QPalette.ColorRole.ButtonText, WHITE) palette.setColor(QPalette.ColorRole.BrightText, Qt.GlobalColor.red) palette.setColor(QPalette.ColorRole.Link, QColor(42, 130, 218)) palette.setColor(QPalette.ColorRole.PlaceholderText, QColor(150, 150, 150)) # Kolory zaznaczenia/interakcji palette.setColor(QPalette.ColorRole.Highlight, HIGHLIGHT) palette.setColor(QPalette.ColorRole.HighlightedText, Qt.GlobalColor.black) # Kontrolki wyłączone (Disabled) # palette.setColor(QPalette.ColorRole.Disabled, QPalette.ColorGroup.Active, QPalette.ColorRole.Text, QColor(127, 127, 127)) # palette.setColor(QPalette.ColorRole.Disabled, QPalette.ColorGroup.Active, QPalette.ColorRole.ButtonText, QColor(127, 127, 127)) # 3. Zastosowanie palety do aplikacji app.setPalette(palette)