我有一个QML应用程序,它使用的字体系列有5个权重 - 轻/常规/中等/粗体/黑色 - 以及3种样式:正常,斜体和浓缩。
当我同时加载正常'并且'浓缩'相同重量的风格,他们拥有相同的姓氏;首先加载的是使用的样式:
FontLoader { source:"qrc:/fonts/DINPro-CondRegular.otf"; id:cond }
FontLoader { source:"qrc:/fonts/DINPro-Regular.otf"; id:norm }
Timer { running:true; onTriggered:console.log(id:norm.name==cond.name) } // outputs `true`
// This ends up using the condensed flavor
Text { text:'hi mom'; font { family:'DINPro' } }
有没有办法告诉Text
对象使用特定的字体文件或FontLoader
实例?对于斜体样式有italic
property,但没有“凝聚”的属性。风味。
如何在同一文档中使用该字体的普通和精简样式,并指定哪些用于不同的Text
?
答案 0 :(得分:2)
我发现对于这种特殊字体,我可以使用styleName
property来控制各种风格。我一直在尝试各种样式字符串,直到找到有效的字符串。
FontLoader { source:"qrc:/fonts/DINPro-Regular.otf" }
FontLoader { source:"qrc:/fonts/DINPro-CondRegular.otf" }
FontLoader { source:"qrc:/fonts/DINPro-CondMedium.otf" }
Text { text:'norm'; font { family:'DINPro'; styleName:'Regular' } }
Text { text:'bold'; font { family:'DINPro'; weight:Font.Bold; styleName:'Regular' } }
Text { text:'blak'; font { family:'DINPro'; weight:Font.Black; styleName:'Regular' } }
Text { text:'cond norm'; font { family:'DINPro'; styleName:'CondRegular' } }
Text { text:'cond bold'; font { family:'DINPro'; styleName:'CondBold' } }
Text { text:'cond blak'; font { family:'DINPro'; styleName:'CondBlack' } }
感觉就像是用胶带和绳子连在一起,但它正在工作。如果有人有更强大的方法来处理这个 - 特别是要确切知道哪些字符串适用于styleName
- 我会很乐意接受这个答案而不是这个答案。