You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QML导入Montserrat Semibold字体显示异常问题求助

解决Montserrat Semibold字体在QML中显示异常的问题

问题原因

你加载的是Montserrat Semibold字体文件,但设置font.bold: true时,Qt会强制将字体切换为该家族的粗体(Bold)变体,而非你需要的半粗体(Semibold);设置font.bold: false则会切换回常规(Regular)变体,因此两种设置都无法正确显示目标样式。

解决方案

直接移除font.bold属性,因为你已经通过FontLoader加载了专门的Semibold字体文件,无需额外指定粗体样式。同时建议等待字体加载完成后再使用,避免因字体未就绪 fallback 到系统字体。

修改后的代码示例:

FontLoader 部分

FontLoader{
    id: semiBoldFont
    source: "Montserrat-SemiBold.ttf"
}

Text 组件部分

Text{
   text: Math.round(100*progress.value) + "%"
   anchors.horizontalCenter: parent.horizontalCenter
   font.pixelSize: qmlCfg.fontSize
   color: "black"
   // 直接使用加载的Semibold字体家族,不设置font.bold
   font.family: semiBoldFont.name
   // 可选:等待字体加载完成后再显示,避免样式异常
   visible: semiBoldFont.status === FontLoader.Ready
}

额外说明

如果你的系统中同时安装了Montserrat的其他变体(如Regular、Bold),Qt可能会根据font.bold的设置自动切换变体,因此必须确保不设置该属性,让Qt使用你通过FontLoader加载的特定Semibold文件。

内容的提问来源于stack exchange,提问作者Arnold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:35:18