首页 文章

完全匹配QML的字体样式

提问于
浏览
1

我有一个QML应用程序使用的字体系列有5个权重 - 轻/常规/中/粗/黑 - 和3种样式:正常,斜体和浓缩 .

font listing

当我加载相同重量的“正常”和“浓缩”样式时,它们共享相同的姓氏;首先加载的是使用的样式:

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用于斜体样式,但没有'condensed'风格的属性 .

如何在同一文档中使用该字体的普通和压缩样式,并指定哪些用于不同的 Text

1 回答

  • 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 - 我会高兴地接受这个答案而不是这个答案 .

相关问题