【问题标题】:QML not using Thin font weightQML 不使用细字体粗细
【发布时间】:2016-06-01 15:38:50
【问题描述】:

我有一个使用免费提供的 Encode Sans font 的 QML 应用程序,它有 9 个与 Qt 5.6's font weights 匹配的权重。

我已将所有 .ttf 添加到我的项目中,并使用 FontLoader 加载它们。一切都很完美,除了字体很细。

除了下面的代码之外,我还尝试在 Thin 的 FontLoader 上提供唯一的 id,以确保系列名称相同(确实如此)。如何调试此问题并让 Thin 正常工作?

### main.qml
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-Thin.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-ExtraLight.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-Light.ttf" }
FontLoader { id:mainFont; source:"qrc:/fonts/encodesans/EncodeSans-Regular.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-Medium.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-SemiBold.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-Bold.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-ExtraBold.ttf" }
FontLoader { source:"qrc:/fonts/encodesans/EncodeSans-Black.ttf" }

Column {
  TextLine { weight:"Thin"       }
  TextLine { weight:"ExtraLight" }
  TextLine { weight:"Light"      }
  TextLine { weight:"Normal"     }
  TextLine { weight:"Medium"     }
  TextLine { weight:"DemiBold"   }
  TextLine { weight:"Bold"       }
  TextLine { weight:"ExtraBold"  }
  TextLine { weight:"Black"      }
}
### TextLine.qml
import QtQuick 2.0
Text {
  property string weight

  text: "1 2 3 4 font.weight: Font."+weight
  color:"white"
  font {
    weight: Font[weight]
    family: mainFont.name
    pixelSize: 36
  }
}

如果重要的话,在 Ubuntu 上使用 Qt 5.6。

【问题讨论】:

    标签: qt fonts qml


    【解决方案1】:

    这是一个 Qt 错误:[QTBUG-53196] Thin fonts do not work in Qt

    您可以使用的一种解决方法是使用 styleName property 代替 Qt 5.6 中引入的。 这种方法的缺点是,如果您在文本中嵌入了一些粗体(使用 html 或富文本),它将无法工作(如果我正确理解了 bug)。

    你可以这样使用它:

    ### TextLine.qml
    import QtQuick 2.0
    Text {
      property string weight
    
      text: "1 2 3 4 font.weight: Font."+weight
      color:"white"
      font {
        styleName: weight
        family: mainFont.name
        pixelSize: 36
      }
    }
    

    【讨论】:

    • 感谢您确认错误,尤其是styleName 解决方法!
    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 2015-03-08
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多