我想在我的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;
风格吗?