我有一个 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对于斜体样式,但没有“压缩”风格的属性。
如何在同一文档中同时使用普通字体和压缩字体,并指定不同的文本
使用哪种字体?
最佳答案
我发现对于这种特定的字体我可以使用 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
- 我会很乐意接受这个答案,而不是这个答案。
关于qt - 将字体样式与 QML 完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45242560/