C
font QML基本类型
字体配置。 更多信息...
描述字体配置的字体类型。可用的属性有
- string
font.family
- bool
font.bold
- bool
font.italic
- int
font.pointSize
- int
font.pixelSize
- var
font.unicodeCoverage
- enumeration
font.weight
- enumeration
font.quality
在使用Monotype Spark字体引擎时,字体配置使用字体类映射规则。
此基本类型由QtQuick导入提供。
使用示例
Text { font.family: "Helvetica"; font.pixelSize: 24; font.bold: true }
常量字体配置
注意: 静态字体引擎只支持常量字体配置。
常量字体配置是指通过qmltocpp将字体的一系列子属性解析为常量值的情况。因此,绑定到只读属性是允许的。例子:
readonly property int titlePixelSize: 40 readonly property font myFontConfig: Qt.font({ pixelSize: titlePixelSize }) Text { text: "hello world" font.pixelSize: titlePixelSize } Text { text: "hello world 2" font: myFontConfig } Text { text: "hello world 3" font.italic: true }
Qt Quick Ultralite或字体引擎特定细节
绑定
从版本1.7开始,可以使用Spark字体引擎在字体子属性上定义绑定。
Text { text: "Hello world from Qt" font.italic: italicSwitch.checked font.pixelSize: pixelSizeSlider.value }
有关如何将绑定评估映射到字体映射文件中字体类名称的更多细节,请参阅字体绑定示例。
两个字体引擎都允许对字体属性进行绑定。例如
readonly property font fontConf1: Qt.font({ pixelSize: 30 }) readonly property font fontConf2: Qt.font({ pixelSize: 50 }) Text { // Binding on font property. font: someCondition ? fontConf1 : fontConf2 text: "some text" }
这允许使用静态引擎在运行时更改字体,尽管没有使用Spark引擎那样对字体子属性绑定进行细微控制的灵活性。
优化
可以通过共享相同的字体配置(Text.font)来优化内存使用,其中文本使用相同的样式。另请参阅Qt.font()。
Text { // Sharing the font configuration with other Text element through a binding. font: myText.font text: "some text" }
常量字体配置在生成的C++代码中被自动共享。
分配
Qt Quick Ultralite 中,字体基本类型是常量值,因此不支持对字体子属性的赋值。
// error: Assigning to properties of 'font' is not supported, use bindings onClicked: myText.font.italic = false
如错误信息中所建议,可以使用绑定来实现相同的结果。
property bool isItalic: true Text { text: "hello world" font.italic: isItalic } MouseArea { anchors.fill: parent onClicked: isItalic = false }
读取
未实现读取字体子属性。
字体属性
字体家族
设置字体的家族名称。默认的字体家族由 MCU.Config.defaultFontFamily 设定。
静态字体引擎
家族名称不区分大小写,可以包含字体制造商的名称。例如,"Helvetica [Cronyx]"。如果家族来自多个制造商,并且没有指定制造商,则选择任意制造商。如果家族不可用,将使用字体匹配算法设定家族。
Spark 字体引擎
当使用Fontmap 文件格式时,会读取 MCU.Config.defaultFontFamily QmlProject 属性的值。否则,仅使用字体像素大小配置。
字体粗体
设置字体是否加粗。
字体斜体
设置字体是否具有斜体风格。
字体点大小
如已知问题或限制页面所述,pointSize
属性不尊重屏幕DPI。当前设置的值被简单地缩放至1.5倍。建议使用font.pixelSize代替。
字体像素大小
设置字体大小(以像素为单位)。
字体unicode覆盖范围
仅在 Qt.font() 上下文中支持此属性。
注意: unicodeCoverage
属性的意义取决于所使用的字体引擎。有关字体引擎特定详细信息,请参阅文本渲染和字体。
与MCU.Config.autoGenerateGlyphs一起使用此属性以优化ROM使用。
数组可能包含
- 包含要添加的符号的字面量字符串,如 "\u1722"。
- Unicode块枚举值,如
Font.UnicodeBlock_Kannada
。有关支持枚举值的列表,请参阅Unicode块名称。 - 指示Unicode范围的成对列表,如
[0x600, 0x61F]
。
示例
Text { font: Qt.font({ family: "DejaVu Sans", unicodeCoverage: [Font.UnicodeBlock_Kannada, "ᜠᜡ\u1722", [0x600, 0x61F]] }) text: CppSingleton.retrieveText() }
在先前的示例中,为 Text
项目使用的字体配置预先渲染了许多额外Unicode码点的符号。这些信息编译到应用程序的二进制文件中。包括 "Kannada" Unicode块中的码点,码点范围0x600到0x61F(包含),以及单个字符ᜠ、ᜡ和U+1722。
即使码点包含在多个范围、块或字符串中,也只为每个码点生成一个符号。
字体重量
设置字体的重量。支持以下枚举
字体.细
字体.非常轻
字体.轻
字体.正常
字体.中等
字体.半粗体
字体.粗体
字体.非常粗
字体.黑色
字体质量
字体的渲染质量。
font.quality
属性通过提供对渲染低质量符号的提示,支持更细致的优化。
请求的质量必须为预定义值之一
字体.质量非常低
字体.质量非常高
示例
Text { font: Qt.font({ quality: Font.QualityVeryHigh }) text: "..." }
注意: quality
属性只能在Qt.font()函数中设置。
注意:该功能可能不在所有参考板上的硬件上得到支持。有关更多信息,请参阅支持功能表。
优化
默认情况下,字体编译器为所有使用的字体配置中所有使用的字符生成符号。这可能导致生成重复的符号。例如
Text { font: Qt.font({ quality: Font.QualityVeryHigh }) text: "a" } Text { font: Qt.font({ quality: Font.QualityVeryLow }) text: "b" }
在上面的例子中,为"ab"字符生成了两次符号,一次为VeryHigh
质量,另一次为VeryLow
质量。这允许在现有的Text项之间绑定文本属性。您可以通过将MCU.Config.autoGenerateGlyphs设置为OFF
来禁用此行为。
要设置应用程序的默认字体质量,请参阅MCU.Config.defaultFontQuality QmlProject属性。
在某些Qt许可证下可用。
了解更多。