【问题标题】:QML FontLoader not workingQML字体加载器不工作
【发布时间】:2013-02-09 08:39:51
【问题描述】:

我正在尝试使用 QML 的内置 FontLoader 元素为我们的应用程序加载自定义字体,但没有成功。

我尝试过同时使用 OTF 和 TTF 字体,结果相同。

字体与项目文件位于同一目录中。只有一个 QML,这个 FontLoader 所在的主要 QML。

它应该是这样的:

这是我的代码:

import QtQuick 2.0

Rectangle {
    width: 360
    height: 360

    FontLoader {
        id: cFontLoader
        source: "./fontlol.ttf"
    }

    Text {
        id: testText
        anchors.centerIn: parent
        text: "Hello Fonts!"
        font.family: cFontLoader.name
        font.pointSize: 32
    }
}

【问题讨论】:

  • 好吧,看来使用像 Bebas Neue 这样的单一风格是可以的。问题是我们需要使用具有各种子样式的 Helvetica Neue LT Pro:puu.sh/27fq9/e42b7c3004我如何指定我想要的?
  • 在 printscreent 我看到 .otf 文件
  • 我很久以前就解决了这个问题,但忘了回帖。出于某种原因,QML 只是不喜欢某些字体文件。它们可以在其他应用程序、网络等中正常工作,但在 QML 中根本不会呈现。我永远无法弄清楚为什么,但我确实设法找到了一个有效的字体包。只是反复试验。

标签: c++ qt fonts qml


【解决方案1】:

我有headaches 与 Qt/QML 的字体处理。带有“各种子样式”的字体似乎是fundamental problem。当我绝对需要在 Qt 中解决一种特定的问题字体样式时,创建一个 custom version with fontforge 的字体,将所需样式重命名为“正常”似乎可行。

【讨论】:

    【解决方案2】:

    我也遇到过这个问题,但在我的情况下,这是因为我添加了“名称”属性。当我删除名称字体开始显示。

    【讨论】:

    • 不知道为什么这会被否决...这就是发生在我身上的事情:事实证明我们无法覆盖字体的名称。感谢您的提示。
    【解决方案3】:

    FontLoader 很适合我

     FontLoader{id:fixedFont; name: "Digital-7"} 
     Text {
     text:"Hello world"
     font.family: fixedFont.name
    }
    

    see here for more

    【讨论】:

      【解决方案4】:

      QML 的文本组件通过字体名称识别字体。但是,如果加载不同的字体类型,通常字体元数据中的字体名称是相同的。

      文本组件有一个属性font.styleName,你可以使用它来访问不同类型的字体:

      FontLoader{id: loader source: "AwesomeFont-Bold.ttf"}
      Text
      {
          font.family: loader.name
          font.styleName: "Bold"
      }
      

      【讨论】:

        猜你喜欢
        • 2016-09-25
        • 2023-04-03
        • 1970-01-01
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多