C

文本 QML 类型

指定如何将文本添加到场景中。 更多...

导入语句import QtQuick
Qt Quick Ultralite 1.0
继承

Item

属性

详细描述

文本项可以显示纯文本。例如,可以定义具有特定 字体 配置的红色文本,如下所示

Text {
    text: "Hello World!"
    font.family: "Helvetica"
    font.pointSize: 24
    color: "red"
}

如果未显式设置高度和宽度,Text 将尝试确定所需的房间量并相应地设置。除非设置 wrapMode,否则它将始终优先考虑宽度而不是高度(所有文本都将放置在同一行上)。

可以使用 elide 属性将文本适合设置的宽度和高度。

可以使用 textFormat 属性配置如何解释 text 中的受支持 HTML 标签的出现。

文本元素支持动态更改 文本 属性。对于显示的文本在编译时已知且固定的情况,请使用 StaticText

另请参阅 文本渲染和字体文本 QML 类型StaticText资源管理 以及 Qt Quick Ultralite 国际化和本地化

属性文档

[自 Qt Quick Ultralite 1.1 起存在] bottomPadding : real

[自 Qt Quick Ultralite 1.1 起存在] leftPadding : real

[自 Qt Quick Ultralite 1.1 起存在] padding : real

[自 Qt Quick Ultralite 1.1 起存在] rightPadding : real

[自 Qt Quick Ultralite 1.1 起存在] topPadding : real

这些属性存储文本周围的填充。

此 QML 属性在 Qt Quick Ultralite 1.1 中引入。


horizontalAlignment : 枚举

verticalAlignment : 枚举

设置文本在其 Text 元素宽度和高度内的水平和垂直对齐方式。默认情况下,文本垂直对齐到顶部,水平对齐到左边。

horizontalAlignment 的有效值是 Text.AlignLeftText.AlignRightText.AlignHCenter。有效值 verticalAlignmentText.AlignTopText.AlignBottomText.AlignVCenter

请注意,对于单行文本,文本的大小就是文本区域。在这种情况下,所有对齐方式都是等价的。如果您想使文本在父元素中居中,则需要修改 Item::anchors 或将 horizontalAlignment 设置为 Text.AlignHCenter 并将宽度绑定到父元素的宽度。


baselineOffset : int

指定项目基线在局部坐标中的位置。

基线是文本所在的假想线。


color : color

文本颜色。

使用十六进制表示法定义的绿色文本示例

Text {
    color: "#00FF00"
    text: "green text"
}

使用 SVG 颜色名称定义的钢蓝色文本示例

Text {
    color: "steelblue"
    text: "blue text"
}

[自 Qt Quick Ultralite 2.1 起存在] elide : 枚举

将此属性设置为截断文本的一部分以适应 Text 项目的大小。

使用以下值之一来截断文本

常数描述
Text.ElideNone默认值
Text.ElideLeft截断文本开头
Text.ElideMiddle截断文本中间
Text.ElideRight截断文本结尾

Text 项目必须在截断文本时显式定义其宽度。如果一个文本项包含多行文本,它必须显式定义宽度和高度。多行文本只支持 Text.ElideRight

截断标记遵循文本的方向。例如

  • - 从左到右 (LTR) 文本方向。
  • - 以阿拉伯语显示的相同文本具有右到左(RTL)文本方向。

当裁剪模式为 Text.ElideRight 时,省略号符号在LTR文本的右侧显示,在RTL文本的左侧显示。

注意:此属性目前不支持 StaticText 项目。

此属性自 Qt Quick Ultralite 2.1 以来引入。


font : font

用于显示文本的字体。


[自 Qt Quick Ultralite 1.3 以来]rotation : real

此属性保存项目的旋转角度(顺时针方向),其值为其 transformOrigin

默认值为 0 度(即无旋转)。

Rectangle {
    color: "blue"
    width: 100; height: 100
    Text {
        text: "Rotated Text"
        color: "red"
        x: 25; y: 25
        rotation: 30
    }
}

此属性自 Qt Quick Ultralite 1.3 以来引入。

另请参阅:TransformRotation.


[自 Qt Quick Ultralite 1.3 以来]scale : real

此属性保存此项目的缩放因子。

缩放小于 1.0 会将项目渲染得较小,而缩放大于 1.0 会将项目渲染得较大。负缩放会导致项目在渲染时镜像显示。

默认值为 1.0。

缩放是从 transformOrigin 应用 的。

import QtQuick 2.15

Rectangle {
    color: "blue"
    width: 100; height: 100

    Rectangle {
        color: "green"
        width: 25; height: 25
    }

    Text {
        text: "Scaled Text"
        color: "red"
        x: 25; y: 25
        scale: 1.4
        transformOrigin: Item.TopLeft
    }
}

此属性自 Qt Quick Ultralite 1.3 以来引入。

另请参阅:TransformScale.


text : string

要显示的文本。文本支持纯文本和丰富文本字符串。

另请参阅:textFormat.


[自 Qt Quick Ultralite 2.6 以来]textFormat : enumeration

指定应如何显示 text 属性。

支持以下文本格式:

常数描述
Text.PlainText(默认)所有样式标签都被视为纯文本。另请参阅有关 Qt Quick 兼容性 的部分。
Text.StyledText支持选择 HTML 标签
Text.RichTextText.StyledText 相同

在 Qt Quick Ultralite 中,StyledText 和 RichText 都映射到同一个后端。

支持的 HTML 标签

<img src="" align="bottom,middle,top"> - inline images in Text item
<img src="" align="bottom,middle,top" width="50" height="40"> - inline images in StaticText item
img 标签

使用示例

Text {
    textFormat: Text.StyledText
    text: "Qt <img src=\"qt-logo.png\" align=\"middle\">"
}

根据 HTML 4 规范

常数描述
bottom表示对象应该垂直对齐到当前的基线。这是默认值。
middle表示对象的中心应该垂直对齐到当前的基线。
top表示对象的顶部应该垂直对齐到当前文本行的顶部。

基线 是字符放置的虚线。注意,bottommiddle 对齐选项是相对于基线的,而 top 是相对于行高。

目前,StaticText 项需要开发者提供图像大小。大小必须是使用图像的实际大小。如果检测到不匹配,将在运行时打印错误,渲染的文本可能不会按预期显示。

StaticText {
    text: "flag <img src=\"latvia-flag-small-icon.png\" width=\"38\" height=\"20\">"
    textFormat:  Text.RichText
}

另请参阅 管理资源.

textFormat 默认值 Qt Quick 兼容性

默认情况下,Qt Quick Text项目中textFormat属性使用Text.AutoText。此格式值在Qt Quick Ultralite中没有实现,以避免运行时开销。在Qt Quick中,只有在极少数情况下文本渲染会不同,但这可以在应用级别简单地解决。考虑以下示例。

要渲染样式文本,必须显式设置StyledText/RichText。以下代码在Qt Quick Ultralite和Qt Quick中应该工作一样。

Text {
    textFormat: Text.StyledText
    text: "Qt <img src=\"qt-logo.png\">"
}

要在Qt Quick Ultralite中将包含HTML标签的文本作为纯文本渲染,您将依赖默认值,该默认值为PlainText。一般情况下,当需要默认行为时,应避免显式设置qml属性。这可以使代码输出的内存优化。

Text {
    text: "Qt <img src=\"qt-logo.png\">"
}

注意,在上面的示例中,textFormat属性没有显式设置,因此Qt Quick将依赖于Text.AutoText行为。在这种情况下,您将必须显式设置textFormat属性以在两种实现中都获得所需的行为。

Text {
    textFormat: Text.PlainText
    text: "Qt <img src=\"qt-logo.png\">"
}

此属性是在Qt Quick Ultralite 2.6中引入的。


transform : list<Transform>

此属性存储要应用的变换列表。

有关更多信息,请参阅Transform


[since Qt Quick Ultralite 1.3] transformOrigin : enumeration

此属性存储围绕其进行缩放和旋转变换的基点。

有九个变换基点可用,如以下图片所示。默认变换基点是 Item.Center

本示例中文字是围绕其右下角旋转的。

Text {
    text: "Hello"
    transformOrigin: Item.BottomRight
    rotation: 45
}

要设置任意变换基点,请使用ScaleRotation变换类型,并使用transform

此属性自 Qt Quick Ultralite 1.3 以来引入。


[read-only] truncated : bool

如果文本因elide而被截断,返回true。

参考 elide


[since Qt Quick Ultralite 2.2] wrapMode : enumeration

将此属性设置为您想将文本包装到Text项目的宽度。只有当设置了显式宽度时,文本才会进行包装。使用以下模式之一来包装文本

常数描述
Text.NoWrap默认。不进行包装。如果文本中包含的新行不足,文本将溢出设置宽度。
Text.WordWrap仅在单词边界上进行包装。如果一个单词比Text项目的宽度长,文本将溢出设置宽度。
Text.WrapAnywhere在任何行上的任一点上进行包装,即使在单词中间也是如此。
Text.Wrap如果可能的话,会在单词边界包装文本,否则在行上的合适点进行包装(甚至在单词中间)。与WordWrap模式不同,文本在这种模式下不溢出。

注意:此属性目前不支持 StaticText 项目。

此属性是在Qt Quick Ultralite 2.2中引入的。


在特定Qt许可下可用。
了解更多。