如何在Qt样式表中设置“字体家族:Ubuntu Medium”

时间:2019-02-05 10:39:45

标签: pyqt qtstylesheets

我想在我的Qt样式表中使用Ubuntu系列的几种字体。

我的通用模板是:

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

我从https://design.ubuntu.com/font/(zip文件)下载了所有文件。对于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;风格吗?

0 个答案:

没有答案