Как установить "font-family: Ubuntu Medium" в таблице стилей Qt - PullRequest
0 голосов
/ 05 февраля 2019

Я хотел бы использовать несколько шрифтов из семейства Ubuntu в моих таблицах стилей Qt.

Мой общий шаблон:

QLabel {
    font-family: %s;
    font-weight: %s;
}

Я скачал все файлы с https://design.ubuntu.com/font/ (почтовый файл).Существуют отдельные файлы для Ubuntu Regular, Ubuntu Bold, Ubuntu Medium ... поэтому я мог бы представить, что для каждого веса будет одно отдельное семейство, но оказывается, что не все веса и стили (курсив ...)похоже, они собраны в одном семействе "Ubuntu".

Я добавил несколько отпечатков в свою функцию, загружая шрифты:

def load_fonts():
    all_good = True
    font_path = resources.resource_path("fonts")
    font_files = [fname for fname in os.listdir(font_path) if fname.endswith(".ttf")]
    font_db = qt.QFontDatabase()
    ids = []
    for font_file in font_files:
        id = font_db.addApplicationFont(
            resources.resource_path("fonts/%s" % font_file))
        if id == -1:
            _logger.warning("Could not load font file %s", font_file)
            all_good = False
        ids.append(id)
    print(font_files)
    print([qt.QFontDatabase.applicationFontFamilies(id) for id in ids])
    print("Actual families available after load: %s" % [fam for fam in font_db.families() if "bun" in fam])
    return all_good

Вот что напечатано:

['UbuntuMono-BI.ttf', 'UbuntuMono-R.ttf', 'Ubuntu-MI.ttf', 'Ubuntu-B.ttf', 'Ubuntu-R.ttf', 'Ubuntu-L.ttf', 'Ubuntu-LI.ttf', 'Ubuntu-M.ttf', 'Ubuntu-RI.ttf', 'UbuntuMono-RI.ttf', 'Ubuntu-BI.ttf', 'UbuntuMono-B.ttf', 'Ubuntu-C.ttf']
[['Ubuntu Mono'], ['Ubuntu Mono'], ['Ubuntu'], ['Ubuntu'], ['Ubuntu'],['Ubuntu'], ['Ubuntu'], ['Ubuntu'], ['Ubuntu'], ['Ubuntu Mono'], ['Ubuntu'], ['Ubuntu Mono'], ['Ubuntu Condensed']]
Actual families available after load: ['Ubuntu', 'Ubuntu Condensed', 'Ubuntu Light', 'Ubuntu Mono']

Таким образом, в результате я могу сделать обычный (font-family: Ubuntu; font-weight: normal;) и жирный (font-family: Ubuntu; font-weight: bold;), но я не могу сделать средний (font-family: Ubuntu; font-weight: medium;).Полученный текст идентичен тому, что я получаю с весом «нормальный».

Есть какие-нибудь подсказки о том, как я могу получить доступ к этим средним шрифтам, которые были импортированы?Qt не понимает стиль font-weight: medium;?

...