1
0
forked from IPKM/nmreval
nmreval/src/gui_qt/lib/styles.py

103 lines
5.0 KiB
Python
Raw Normal View History

2022-03-08 09:27:40 +00:00
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)