PyQt5 are resource encoded in 16bit

This commit is contained in:
Yeison 2020-12-05 22:54:28 -05:00
parent 88995c4bff
commit d7812644b3

View File

@ -1,5 +1,6 @@
import os import os
import sys import sys
from textwrap import wrap
import logging import logging
from xml.etree import ElementTree from xml.etree import ElementTree
@ -7,15 +8,16 @@ from xml.etree import ElementTree
if 'PySide2' in sys.modules: if 'PySide2' in sys.modules:
from PySide2.QtGui import QFontDatabase from PySide2.QtGui import QFontDatabase
from PySide2.QtWidgets import QAction from PySide2.QtWidgets import QAction
_resource = os.path.join('resources', 'resource_pyside2_rc.py')
elif 'PyQt5' in sys.modules: elif 'PyQt5' in sys.modules:
from PyQt5.QtGui import QFontDatabase from PyQt5.QtGui import QFontDatabase
from PyQt5.QtWidgets import QAction from PyQt5.QtWidgets import QAction
_resource = os.path.join('resources', 'resource_pyqt5_rc.py')
import jinja2 import jinja2
template = 'material.css.template' template = 'material.css.template'
_resource = os.path.join('resources', 'resource_rc.py')
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
@ -122,8 +124,16 @@ def opacity(theme, value=0.5):
return f'rgba({r}, {g}, {b}, {value})' return f'rgba({r}, {g}, {b}, {value})'
# ----------------------------------------------------------------------
def str16b(c):
""""""
return '\\x' + '\\x'.join(wrap(c.encode().hex(), 2))
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
def set_icons_theme(theme, resource=None, output=None): def set_icons_theme(theme, resource=None, output=None):
"""""" """"""
try: try:
@ -146,10 +156,15 @@ def set_icons_theme(theme, resource=None, output=None):
) )
for color, replace in replaces: for color, replace in replaces:
if 'PySide2' in sys.modules:
colors = [ colors = [
color] + [''.join(list(color)[:i] + ['\\\n'] + list(color)[i:]) for i in range(1, 7)] color] + [''.join(list(color)[:i] + ['\\\n'] + list(color)[i:]) for i in range(1, 7)]
for c in colors: for c in colors:
content = content.replace(c, theme[replace]) content = content.replace(c, theme[replace])
elif 'PyQt5' in sys.modules:
colors = [str16b(color)] + [str16b(color)[:i] + '\\\n' + str16b(color)[i:] for i in range(4, 28, 4)]
for c in colors:
content = content.replace(c, str16b(theme[replace]))
if output: if output:
with open(output, 'w') as file: with open(output, 'w') as file: