8

我正在尝试使用 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
    }
}
4

4 回答 4

6

Qt/QML 的字体处理让我头疼。“各种子样式”的字体似乎是根本问题。当我绝对需要在 Qt 中解决一种特定的问题字体样式时,使用 fontforge将所需样式重命名为“正常”的字体创建自定义版本似乎可行。

于 2013-10-28T10:09:24.507 回答
1

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

于 2013-11-04T20:57:14.270 回答
1

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

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

FontLoader{id: loader source: "AwesomeFont-Bold.ttf"}
Text
{
    font.family: loader.name
    font.styleName: "Bold"
}
于 2019-07-26T11:44:34.463 回答
-3

FontLoader 很适合我

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

看这里了解更多

于 2014-06-24T06:52:30.960 回答