tstylesheet_patcher.py - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
tstylesheet_patcher.py (1737B)
---
1 """This is used to patch the QApplication style sheet.
2 It reads the current stylesheet, appends our modifications and sets the new stylesheet.
3 """
4
5 import sys
6
7 from PyQt5 import QtWidgets
8
9
10 CUSTOM_PATCH_FOR_DARK_THEME = '''
11 /* PayToEdit text was being clipped */
12 QAbstractScrollArea {
13 padding: 0px;
14 }
15 /* In History tab, labels while edited were being clipped (Windows) */
16 QAbstractItemView QLineEdit {
17 padding: 0px;
18 show-decoration-selected: 1;
19 }
20 /* Checked item in dropdowns have way too much height...
21 see #6281 and https://github.com/ColinDuquesnoy/QDarkStyleSheet/issues/200
22 */
23 QComboBox::item:checked {
24 font-weight: bold;
25 max-height: 30px;
26 }
27 '''
28
29 CUSTOM_PATCH_FOR_DEFAULT_THEME_MACOS = '''
30 /* On macOS, main window status bar icons have ugly frame (see #6300) */
31 StatusBarButton {
32 background-color: transparent;
33 border: 1px solid transparent;
34 border-radius: 4px;
35 margin: 0px;
36 padding: 2px;
37 }
38 StatusBarButton:checked {
39 background-color: transparent;
40 border: 1px solid #1464A0;
41 }
42 StatusBarButton:checked:disabled {
43 border: 1px solid #14506E;
44 }
45 StatusBarButton:pressed {
46 margin: 1px;
47 background-color: transparent;
48 border: 1px solid #1464A0;
49 }
50 StatusBarButton:disabled {
51 border: none;
52 }
53 StatusBarButton:hover {
54 border: 1px solid #148CD2;
55 }
56 '''
57
58
59 def patch_qt_stylesheet(use_dark_theme: bool) -> None:
60 custom_patch = ""
61 if use_dark_theme:
62 custom_patch = CUSTOM_PATCH_FOR_DARK_THEME
63 else: # default theme (typically light)
64 if sys.platform == 'darwin':
65 custom_patch = CUSTOM_PATCH_FOR_DEFAULT_THEME_MACOS
66
67 app = QtWidgets.QApplication.instance()
68 style_sheet = app.styleSheet() + custom_patch
69 app.setStyleSheet(style_sheet)