49 lines
2.2 KiB
Python
49 lines
2.2 KiB
Python
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)
|