1
0
forked from IPKM/nmreval
nmreval/src/gui_qt/lib/styles.py
dominik 8d148b639b BUGFIX: VFT;
change to src layout
2022-10-20 17:23:15 +02:00

103 lines
5.0 KiB
Python

from . import HAS_IMPORTLIB_RESOURCE
from ..Qt import QtGui, QtWidgets
class DarkPalette(QtGui.QPalette):
def __init__(self):
super().__init__()
self.setColor(QtGui.QPalette.Base, QtGui.QColor(42, 42, 42))
self.setColor(QtGui.QPalette.AlternateBase, QtGui.QColor(66, 66, 66))
self.setColor(QtGui.QPalette.Window, QtGui.QColor(93, 93, 93))
self.setColor(QtGui.QPalette.ToolTipBase, QtGui.QColor(93, 93, 93))
self.setColor(QtGui.QPalette.Button, QtGui.QColor(93, 93, 93))
self.setColor(QtGui.QPalette.WindowText, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.ToolTipText, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.Text, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.BrightText, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.HighlightedText, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.Shadow, QtGui.QColor(20, 20, 20))
self.setColor(QtGui.QPalette.Dark, QtGui.QColor(35, 35, 35))
self.setColor(QtGui.QPalette.Highlight, QtGui.QColor(42, 130, 218))
self.setColor(QtGui.QPalette.Link, QtGui.QColor(220, 220, 220))
self.setColor(QtGui.QPalette.LinkVisited, QtGui.QColor(108, 180, 218))
# disabled
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Base, QtGui.QColor(80, 80, 80))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Window, QtGui.QColor(80, 80, 80))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Text, QtGui.QColor(127, 127, 127))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, QtGui.QColor(127, 127, 127))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.HighlightedText, QtGui.QColor(127, 127, 127))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, QtGui.QColor(127, 127, 127))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Highlight, QtGui.QColor(80, 80, 80))
class LightPalette(QtGui.QPalette):
def __init__(self):
super().__init__()
self.setColor(QtGui.QPalette.Base, QtGui.QColor(237, 237, 237))
self.setColor(QtGui.QPalette.AlternateBase, QtGui.QColor(225, 225, 225))
self.setColor(QtGui.QPalette.Window, QtGui.QColor(240, 240, 240))
self.setColor(QtGui.QPalette.ToolTipBase, QtGui.QColor(240, 240, 240))
self.setColor(QtGui.QPalette.Button, QtGui.QColor(240, 240, 240))
self.setColor(QtGui.QPalette.WindowText, QtGui.QColor(0, 0, 0))
self.setColor(QtGui.QPalette.Text, QtGui.QColor(0, 0, 0))
self.setColor(QtGui.QPalette.BrightText, QtGui.QColor(0, 0, 0))
self.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(0, 0, 0))
self.setColor(QtGui.QPalette.ToolTipText, QtGui.QColor(0, 0, 0))
self.setColor(QtGui.QPalette.HighlightedText, QtGui.QColor(0, 0, 0))
self.setColor(QtGui.QPalette.Shadow, QtGui.QColor(20, 20, 20))
self.setColor(QtGui.QPalette.Dark, QtGui.QColor(225, 225, 225))
self.setColor(QtGui.QPalette.Highlight, QtGui.QColor(218, 66, 42))
self.setColor(QtGui.QPalette.Link, QtGui.QColor(0, 162, 232))
self.setColor(QtGui.QPalette.LinkVisited, QtGui.QColor(222, 222, 222))
# disabled
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Base, QtGui.QColor(115, 115, 115))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Window, QtGui.QColor(115, 115, 115))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, QtGui.QColor(115, 115, 115))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Text, QtGui.QColor(115, 115, 115))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, QtGui.QColor(115, 115, 115))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.HighlightedText, QtGui.QColor(115, 115, 115))
self.setColor(QtGui.QPalette.Disabled, QtGui.QPalette.Highlight, QtGui.QColor(190, 190, 190))
class MyProxyStyle(QtWidgets.QProxyStyle):
def __init__(self, color):
super().__init__()
if color == 'dark':
self._palette = DarkPalette()
else:
self._palette = LightPalette()
def polish(self, obj):
if isinstance(obj, QtGui.QPalette):
return self._palette
elif isinstance(obj, QtWidgets.QApplication):
if HAS_IMPORTLIB_RESOURCE:
from importlib.resources import path
with path('resources.icons', 'style.qss') as fp:
with fp.open('r') as f:
obj.setStyleSheet(f.read())
else:
from pkg_resources import resource_filename
with open(resource_filename('resources.icons', 'style.qss'), 'r') as f:
obj.setStyleSheet(f.read())
else:
return super().polish(obj)