0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +02:00

feat(accent colors): added helper function to get all accent colors

This commit is contained in:
2024-09-06 17:22:38 +02:00
parent de303f0227
commit 84a59f70ee
3 changed files with 20 additions and 3 deletions

View File

@ -1,6 +1,8 @@
from __future__ import annotations
import itertools
import re
from typing import Literal
from typing import TYPE_CHECKING, Literal
import bec_qthemes
import numpy as np
@ -10,6 +12,9 @@ from pydantic_core import PydanticCustomError
from qtpy.QtGui import QColor
from qtpy.QtWidgets import QApplication
if TYPE_CHECKING:
from bec_qthemes._main import AccentColors
def get_theme_palette():
if QApplication.instance() is None or not hasattr(QApplication.instance(), "theme"):
@ -19,6 +24,16 @@ def get_theme_palette():
return bec_qthemes.load_palette(theme)
def get_accent_colors() -> AccentColors | None:
"""
Get the accent colors for the current theme. These colors are extensions of the color palette
and are used to highlight specific elements in the UI.
"""
if QApplication.instance() is None or not hasattr(QApplication.instance(), "theme"):
return None
return QApplication.instance().theme.accent_colors
def _theme_update_callback():
"""
Internal callback function to update the theme based on the system theme.

View File

@ -6,6 +6,7 @@ from qtpy.QtGui import QColor, QPainter, QPainterPath
from qtpy.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
from bec_widgets.utils.bec_widget import BECWidget
from bec_widgets.utils.colors import get_accent_colors
class BECProgressBar(BECWidget, QWidget):
@ -26,7 +27,7 @@ class BECProgressBar(BECWidget, QWidget):
super().__init__(client=client, config=config, gui_id=gui_id)
QWidget.__init__(self, parent=parent)
accent_colors = QApplication.instance().theme.accent_colors
accent_colors = get_accent_colors()
# internal values
self._oversampling_factor = 50

View File

@ -16,6 +16,7 @@ from qtpy.QtWidgets import QApplication, QWidget
from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
from bec_widgets.utils import Colors, EntryValidator
from bec_widgets.utils.colors import get_accent_colors
from bec_widgets.utils.linear_region_selector import LinearRegionWrapper
from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig
from bec_widgets.widgets.figure.plots.waveform.waveform_curve import (
@ -108,7 +109,7 @@ class BECWaveform(BECPlotBase):
self.scan_item = None
self._roi_region = None
self.roi_select = None
self._accent_colors = QApplication.instance().theme.accent_colors
self._accent_colors = get_accent_colors()
self._x_axis_mode = {
"name": None,
"entry": None,