from tkinter import font

FONT_DEFAULT_SIZE = 9
FONT_DEFAULT_SIZE_PIXEL = -12

def get_font_scale_factor(font_name):
    """
    Calculate the ratio between the system font and the default font, on which default sizes are based
    :return the ratio between system font (currently used) and the default font 
    """
    font_size_system = font.nametofont(font_name).cget("size")
    
    if font_size_system > 0:
        # pt size
        return font_size_system / FONT_DEFAULT_SIZE
    else:
        return font_size_system / FONT_DEFAULT_SIZE_PIXEL