from PySide6.QtWidgets import QLabel from PySide6.QtGui import QFont from PySide6.QtCore import Qt import globals def _set_os_family_font(ClassName: str): _font = None if globals.os == "Linux": if ClassName == MainLabel.__name__ or SubLabel.__name__: _font = "Noto Sans" elif ClassName == SubLabelValue.__name__: _font = "Noto Sans Mono" elif globals.os == "Windows": if ClassName == MainLabel.__name__ or SubLabel.__name__: _font = "Calibri" elif ClassName == SubLabelValue.__name__: _font = "Cascadia Code" return _font class MainLabel(QLabel): def __init__(self): super().__init__() self.setAlignment(Qt.AlignmentFlag.AlignCenter) self.setFont(QFont(_set_os_family_font(__class__.__name__), 16, weight=QFont.Weight.ExtraBold)) class SubLabel(QLabel): """ Formatting for sub-labels. """ def __init__(self, value): super().__init__() self.setFont(QFont(_set_os_family_font(__class__.__name__), 12, weight=QFont.Weight.Thin)) self.setText(value) class SubLabelValue(QLabel): """ Formatting for values. """ def __init__(self): super().__init__() self.setAlignment(Qt.AlignmentFlag.AlignRight) self.setFont(QFont(_set_os_family_font(__class__.__name__), 8))