|
23 | 23 | from freecad.marz.extension.paths import iconPath, graphicsPath |
24 | 24 | from freecad.marz.utils import text |
25 | 25 |
|
| 26 | +class ThemeColorsHack(ui.QLabel): |
| 27 | + def paintEvent(self, e: ui.QPaintEvent): |
| 28 | + qp = ui.QPainter() |
| 29 | + qp.begin(self) |
| 30 | + qp.fillRect(0, 0, 5, 10, qp.pen().color()) |
| 31 | + qp.end() |
| 32 | + |
26 | 33 | # This is a hack to obtain the text color depending on the current stylesheet |
27 | 34 | # There is no way to get stylesheet info directly in Qt |
28 | 35 | def get_base_colors() -> Tuple[ui.Color, ui.Color]: |
29 | | - lb = ui.QLabel('L') |
30 | | - lb.setStyleSheet('font-size: 50px; padding: 0px; margin: 0px; border: none;') |
| 36 | + lb = ThemeColorsHack() |
31 | 37 | lb.setGeometry(0,0,10,10) |
32 | 38 | pixmap = ui.QPixmap(10,10) |
33 | 39 | lb.render(pixmap) |
34 | 40 | image = pixmap.toImage() |
35 | | - background = image.pixelColor(0,5) |
36 | | - color = image.pixelColor(9,5) |
37 | | - if color == background: |
38 | | - color = image.pixelColor(4,5) |
| 41 | + background = image.pixelColor(9,5) |
| 42 | + color = image.pixelColor(1,5) |
39 | 43 | return ui.Color(color), ui.Color(background) |
40 | 44 |
|
41 | 45 | TEXT_COLOR, BG_COLOR = get_base_colors() |
|
0 commit comments