Source code for spyder.api.fonts
# -*- coding: utf-8 -*-
#
# Copyright © Spyder Project Contributors
# Licensed under the terms of the MIT License
# (see spyder/__init__.py for details)
"""
Helper classes to get and set the fonts used in Spyder.
"""
# Standard library imports
from typing import Optional
# Third-party imports
from qtpy.QtGui import QFont
# Local imports
from spyder.config.gui import get_font
[docs]
class SpyderFontType:
"""
Font types used in Spyder plugins and the entire application.
Notes
-----
* This enum is meant to be used to get the QFont object corresponding to
each type.
* The names associated to the values in this enum depend on historical
reasons that go back to Spyder 2 and are not easy to change now.
* Monospace is the font used used in the Editor, IPython console and
History; Interface is used by the entire Spyder app; and
MonospaceInterface is used, for instance, by the Variable Explorer and
corresponds to Monospace font resized to look good against the
Interface one.
"""
Monospace = 'font'
Interface = 'app_font'
MonospaceInterface = 'monospace_app_font'
[docs]
class SpyderFontsMixin:
"""Mixin to get the different Spyder font types from our config system."""
[docs]
@classmethod
def get_font(
cls,
font_type: str,
font_size_delta: Optional[int] = 0
) -> QFont:
"""
Get a font type as a QFont object.
Parameters
----------
font_type: str
A Spyder font type. This must be one of the `SpyderFontType` enum
values.
font_size_delta: int, optional
Small increase or decrease over the default font size. The default
is 0.
"""
return get_font(option=font_type, font_size_delta=font_size_delta)