Text QML Type
指定如何在场景中添加格式化文本。更多
Import Statement: | import QtQuick |
Inherits: |
属性
- advance : size
- antialiasing : bool
- baseUrl : url
- bottomPadding : real
- clip : bool
- color : color
- contentHeight : real
- contentWidth : real
- effectiveHorizontalAlignment : enumeration
- elide : enumeration
- font.bold : bool
- font.capitalization : enumeration
- font.contextFontMerging : bool
(since 6.8)
- font.family : string
- font.features : object
(since 6.6)
- font.hintingPreference : enumeration
- font.italic : bool
- font.kerning : bool
- font.letterSpacing : real
- font.pixelSize : int
- font.pointSize : real
- font.preferShaping : bool
- font.preferTypoLineMetrics : bool
(since 6.8)
- font.strikeout : bool
- font.styleName : string
- font.underline : bool
- font.variableAxes : object
(since 6.7)
- font.weight : int
- font.wordSpacing : real
- fontInfo.bold : bool
- fontInfo.family : string
- fontInfo.italic : bool
- fontInfo.pixelSize : int
- fontInfo.pointSize : real
- fontInfo.styleName : string
- fontInfo.weight : int
- fontSizeMode : enumeration
- horizontalAlignment : enumeration
- hoveredLink : string
- leftPadding : real
- lineCount : int
- lineHeight : real
- lineHeightMode : enumeration
- linkColor : color
- maximumLineCount : int
- minimumPixelSize : int
- minimumPointSize : int
- padding : real
- renderType : enumeration
- renderTypeQuality : int
(since 6.0)
- rightPadding : real
- style : enumeration
- styleColor : color
- text : string
- textFormat : enumeration
- topPadding : real
- truncated : bool
- verticalAlignment : enumeration
- wrapMode : enumeration
信号
- lineLaidOut(object line)
- linkActivated(string link)
- linkHovered(string link)
方法
- forceLayout()
- linkAt(real x, real y)
详细说明
文本项既可以显示纯文本,也可以显示富文本。例如,您可以像这样定义具有特定字体和大小的红色文本:
Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color: "red" }
使用 HTML-style 标记或 Markdown 来定义富文本:
Text { text: "<b>Hello</b> <i>World!</i>" }
Text { text: "**Hello** *World!*" }
如果没有明确设置高度和宽度,Text 将尝试确定需要多少空间并进行相应设置。除非设置了wrapMode ,否则宽度总是优先于高度(所有文本都将放在一行)。
要使单行纯文本适合设定的宽度,可以使用elide 属性。
请注意,支持的 HTML 子集是有限的。此外,如果文本中包含加载远程图像的 HTML img 标记,文本将被重新加载。
文本提供只读文本。如需编辑文本,请参阅TextEdit 。
另请参阅 字体示例。
属性文档
effectiveHorizontalAlignment : enumeration |
horizontalAlignment : enumeration |
verticalAlignment : enumeration |
设置文本项目宽度和高度内文本的水平和垂直对齐方式。默认情况下,文本垂直对齐到顶部。水平对齐方式遵循文本的自然对齐方式,例如,从左到右阅读的文本将向左对齐。
horizontalAlignment
的有效值是Text.AlignLeft
,Text.AlignRight
,Text.AlignHCenter
和Text.AlignJustify
。verticalAlignment
的有效值是Text.AlignTop
、Text.AlignBottom
和Text.AlignVCenter
。
请注意,对于单行文本,文本的大小就是文本的面积。在这种常见情况下,所有对齐方式都是等效的。如果您希望文本在父代中居中,则需要修改Item::anchors ,或将horizontalAlignment 设置为 Text.AlignHCenter,并将宽度绑定到父代的宽度。
当使用所附属性LayoutMirroring::enabled 镜像应用程序布局时,文本的水平对齐方式也将被镜像。但是,属性horizontalAlignment
将保持不变。要查询文本的有效水平对齐方式,请使用只读属性effectiveHorizontalAlignment
。
这些属性保留了内容周围的填充。除了contentWidth 和contentHeight 之外,还保留了其他空间。
advance : size |
在文本流中,从文本项第一个字符的基线原点到紧随其后的文本项第一个字符的基线原点之间的距离(以像素为单位)。
请注意,如果文本从右向左流动,前进值可以是负数。
antialiasing : bool |
用于决定文本是否使用抗锯齿。只有renderType of Text.NativeRendering 的文本才能禁用抗锯齿。
默认值为true
。
baseUrl : url |
该属性指定了一个基础 URL,用于解析文本中的相对 URL。
URL 会解析为与基础 URL 目标目录相同的目录,这意味着路径中最后一个"/"之后的任何部分都会被忽略。
基础 URL | 相对网址 | 解析后的 URL |
---|---|---|
http://qt-project.org/ | images/logo.png | http://qt-project.org/images/logo.png |
http://qt-project.org/index.html | images/logo.png | http://qt-project.org/images/logo.png |
http://qt-project.org/content | images/logo.png | http://qt-project.org/content/images/logo.png |
http://qt-project.org/content/ | images/logo.png | http://qt-project.org/content/images/logo.png |
http://qt-project.org/content/index.html | images/logo.png | http://qt-project.org/content/images/logo.png |
http://qt-project.org/content/index.html | ../images/logo.png | http://qt-project.org/images/logo.png |
http://qt-project.org/content/index.html | /images/logo.png | http://qt-project.org/images/logo.png |
默认值是实例化文本项的 QML 文件的 url。
clip : bool |
该属性表示文本是否被剪切。
请注意,如果文本不适合边界矩形,就会被突然剪切。
如果您想在有限的空间内显示潜在的长文本,您可能需要使用elide
。
color : color |
contentHeight : real |
返回文本的高度,包括由于文本数量超过设定高度而超出的高度。
contentWidth : real |
返回文本的宽度,包括由于设置了 WrapMode(包边模式)而未充分包边所覆盖的宽度。
elide : enumeration |
设置该属性后,文本中适合文本项宽度的部分将被移除。只有在设置了明确宽度的情况下,文本才会消失。
此属性不能用于富文本。
可以通过以下方式消除
常量 | 说明 |
---|---|
Text.ElideNone | - 默认值 |
Text.ElideLeft | |
Text.ElideMiddle | |
Text.ElideRight |
如果此属性设置为 Text.ElideRight,则可用于wrapped 文本。只有在设置了maximumLineCount
, 或height
的情况下,文本才会消除。如果同时设置了maximumLineCount
和height
,则maximumLineCount
将适用,除非行不符合允许的高度。
如果文本是多长字符串,且模式不是Text.ElideNone
,则将使用适合的第一个字符串,否则将省略最后一个字符串。
多长字符串从长到短排序,中间用 Unicode "字符串终结符 "字符U009C
分隔(在 QML 中用"\u009C"
或"\x9C"
写入)。
font.bold : bool |
设置字体是否加粗。
font.capitalization : enumeration |
设置文本的大小写。
常量 | 说明 |
---|---|
Font.MixedCase | 正常情况:不改变大小写 |
Font.AllUppercase | 将文本改成全大写字体 |
Font.AllLowercase | 将文本改成全小写字体 |
Font.SmallCaps | 将文本改成小大写字母 |
Font.Capitalize | 更改文本,使每个单词的第一个字符为大写字符Text { text: "Hello"; font.capitalization: Font.AllLowercase } |
font.contextFontMerging : bool |
如果所选字体不包含特定字符,Qt 会自动选择包含该字符的相似字体。默认情况下,这是在逐个字符的基础上进行的。
这意味着在某些不常见的情况下,即使是在同一个脚本中,也可能会使用多种不同的字体来表示一串文本。如果将contextFontMerging
设置为 true,就会尝试查找与输入字符串最大子集匹配的后备字体。这对字形缺失的字符串来说代价较高,但结果可能更一致。默认情况下,contextFontMerging
是false
。
此属性在 Qt 6.8 中引入。
另请参阅 QFont::StyleStrategy 。
font.family : string |
设置字体的族名。
族名不区分大小写,可选择包含代工厂名称,例如 "Helvetica [Cronyx]"。如果有一个以上的字体代工厂提供该族,但未指定代工厂,则会任意选择一个代工厂。如果没有可用的族,则将使用字体匹配算法设置一个族。
font.features : object |
在根据features 中的内容塑造文本时,为特定 OpenType 特征应用整数值。这为字体整形过程提供了高级访问权限,可用于支持 API 未涵盖的字体特征。
字体特征由四字母标记到整数值的映射表示。在大多数情况下,与标签一起传递的整数值代表一个布尔值:零值表示禁用该功能,非零值表示启用该功能。但对于某些字体功能,它可能有其他解释。例如,当应用于salt
功能时,该值是一个索引,用于指定要使用的替代样式。
例如,frac
字体功能会将用斜线分隔的对角线分数(如1/2
)转换为不同的表示方法。通常情况下,这需要将完整的分数转换为单个字符宽度(如½
)。
如果字体支持frac
功能,则可以在整形器中启用该功能,如下代码所示:
Text { text: "One divided by two is 1/2" font.family: "MyFractionFont" font.features: { "frac": 1 } }
可以在同一映射中为多个特征赋值。例如,如果您想同时禁用字体的内角,可以如下所示显式禁用该功能:
Text { text: "One divided by two is 1/2" font.family: "MyFractionFont" font.features: { "frac": 1, "kern": 0 } }
您还可以在一个对象中收集字体属性:
Text { text: "One divided by two is 1/2" font: { family: "MyFractionFont" features: { "frac": 1, "kern": 0 } } }
注意: 默认情况下,Qt 会根据其他字体属性启用或禁用某些字体功能。特别是,kern
功能的启用/禁用将取决于QFont 的font.kerning 属性。此外,如果设置了font.letterSpacing ,所有连字功能(liga
,clig
,dlig
,hlig
)都将禁用,但仅限于使用连字作为装饰的书写系统。对于需要使用连线的书写系统,这些功能将保持默认状态。使用font.features
设置的值将覆盖默认行为。例如,如果"kern"
设置为 1,那么无论font.kerning 属性是否设置为 false,都将始终启用分隔符。同样,如果将其设置为0
,则将始终禁用。
此属性在 Qt 6.6 中引入。
另请参阅 QFont::setFeature().
font.hintingPreference : enumeration |
设置文本的首选提示。这是对底层文本渲染系统使用某种级别的提示,不同平台对它的支持各不相同。更多详情,请参阅QFont::HintingPreference 文档中的表格。
注意: 此属性只有与呈现类型 Text.NativeRendering 一起使用时才有效。
常量 | 说明 |
---|---|
Font.PreferDefaultHinting | 使用目标平台的默认提示级别。 |
Font.PreferNoHinting | 如果可能,渲染文本时不提示字形轮廓。文本布局在排版上将是准确的,使用的度量标准与打印时相同。 |
Font.PreferVerticalHinting | 如果可能,在渲染文本时不使用水平提示,但在垂直方向将字形与像素网格对齐。在密度太低而无法准确呈现字形的显示器上,文字会显得更清晰。但由于字形的水平度量没有提示,因此文本的布局可以扩展到密度较高的设备(如打印机)上,而不会影响换行等细节。 |
Font.PreferFullHinting | 如果可能的话,在水平和垂直方向上渲染都有提示的文本。文本将进行修改,以优化在目标设备上的可读性,但由于衡量标准取决于文本的目标尺寸,因此字形、换行符和其他排版细节的位置不会缩放,这意味着文本布局在不同像素密度的设备上可能会有不同的效果。Text { text: "Hello"; renderType: Text.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting } |
font.italic : bool |
设置字体是否具有斜体样式。
font.kerning : bool |
在调整文本形状时启用或禁用OpenType字形分隔功能。禁用该功能可能会提高创建或更改文本时的性能,但会牺牲一些外观特性。默认值为 true。
Text { text: "OATS FLAVOUR WAY"; font.kerning: false }
font.letterSpacing : real |
设置字体的字母间距。
字母间距可更改字体中单个字母之间的默认间距。正值增加相应像素的字母间距,负值减小间距。
font.pixelSize : int |
以像素为单位设置字体大小。
使用此功能会使字体取决于设备。使用pointSize
可以独立于设备设置字体大小。
font.pointSize : real |
以点为单位设置字体大小。点的大小必须大于零。
font.preferShaping : bool |
有时,字体会对一组字符应用复杂的规则,以正确显示这些字符。在某些书写系统(如婆罗门文字)中,为了使文字清晰易读,必须这样做,但在拉丁字母等文字中,这只是一种外观特征。将preferShaping
属性设置为 false 将在不需要时禁用所有此类功能,这将在大多数情况下提高性能。
默认值为 true。
Text { text: "Some text"; font.preferShaping: false }
font.preferTypoLineMetrics : bool |
竞争垂直线度量集,提供字体的ascent 、descent 和leading 。这些指标通常被称为win(Windows)指标和typo(排版)指标。虽然规范建议使用typo
度量来确定行距,但许多应用程序更倾向于使用win
度量,除非在字体的fsSelection字段中设置了USE_TYPO_METRICS
标志。出于向后兼容的考虑,Qt 应用程序也是如此。对于设置USE_TYPO_METRICS
标志以表示typo
度量有效的字体,以及win
度量和typo
度量相匹配的字体,这并不是一个问题。不过,对于某些字体,win
指标可能大于理想行距,而USE_TYPO_METRICS
标志可能被错误地取消设置。对于这类字体,设置font.preferTypoLineMetrics
可能会得到更好的结果。
默认情况下,preferTypoLineMetrics
是false
。
该属性在 Qt 6.8 中引入。
另请参阅 QFont::StyleStrategy 。
font.strikeout : bool |
设置字体是否具有删除线样式。
font.styleName : string |
设置字体的样式名称。
样式名称不区分大小写。如果设置,字体将与样式名称匹配,而不是与字体属性font.weight,font.bold 和font.italic 匹配。
font.underline : bool |
设置文本是否有下划线。
font.variableAxes : object |
为可变字体中的可变轴应用浮点数值。
可变字体提供了一种在同一字体文件中存储多个变量(具有不同的重量、宽度或样式)的方法。这些变化以浮点数值的形式给出,用于一组预定义的参数,称为 "变量轴"。具体实例通常由字体设计者命名,在 Qt Designer 中,可以使用 setStyleName() 来选择这些实例,就像传统的子家族一样。
在某些情况下,为不同轴提供任意值也很有用。例如,如果一种字体有普通和粗体两个子字体,您可能需要一个介于这两种字体之间的权重。这时,您可以通过为字体中的 "wght "轴提供自定义值来手动实现这一要求。
Text { text: "Foobar" font.family: "MyVariableFont" font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 } }
如果字体支持 "wght "轴,且给定值在其定义范围内,则将提供与权重 550.0 相对应的字体。
许多字体都提供一些标准轴,如 "wght"(重量)、"wdth"(宽度)、"ital"(斜体)和 "opsz"(光学尺寸)。字体本身定义了它们各自的范围。例如,"wght "可以从 100 到 900(QFont::Thin 到QFont::Black ),而 "ital "可以从 0 到 1(从非斜体到完全斜体)。
字体也可以选择定义自定义轴;唯一的限制是名称必须符合QFont::Tag (四个拉丁-1 字符的序列)的要求。
默认情况下,不设置可变轴。
注意: 在 Windows 系统中,如果使用了可选的 GDI 字体后端,则不支持可变轴。
此属性在 Qt 6.7 中引入。
另请参阅 QFont::setVariableAxis().
font.weight: int |
字体要求的权重。请求的权重必须是 1 到 1000 之间的整数,或预定义值之一:
常数 | 说明 |
---|---|
Font.Thin | 100 |
Font.ExtraLight | 200 |
Font.Light | 300 |
Font.Normal | 400 (默认值) |
Font.Medium | 500 |
Font.DemiBold | 600 |
Font.Bold | 700 |
Font.ExtraBold | 800 |
Font.Black | 900Text { text: "Hello"; font.weight: Font.DemiBold } |
font.wordSpacing : real |
设置字体的字间距。
字间距更改单个字之间的默认间距。正值会相应增加字间距的像素数,而负值则会相应减少字间距。
fontInfo.bold : bool |
当前字体和fontSizeMode 已解决的字体信息的粗体状态。如果已解析字体的权重为粗体或更高,则该值为真。
fontInfo.family : string |
为当前字体和fontSizeMode 解析的字体族名称。
fontInfo.italic : bool |
当前字体和fontSizeMode 已解决的字体信息的斜体状态。
fontInfo.pixelSize : int |
当前字体和fontSizeMode 的字体信息的像素大小。
fontInfo.pointSize : real |
为当前字体和fontSizeMode 解析的字体信息的 pointSize。
fontInfo.styleName : string |
当前字体和fontSizeMode 的字体信息的样式名称。
fontInfo.weight : int |
为当前字体和fontSizeMode 解析的字体信息的权重。
fontSizeMode : enumeration |
该属性指定如何确定显示文本的字体大小。可能的值有
常量 | 说明 |
---|---|
Text.FixedSize | (默认)使用font.pixelSize 或font.pointSize 指定的大小。 |
Text.HorizontalFit | 使用适合项目宽度的最大字体大小,直至指定的字体大小,且不包边。 |
Text.VerticalFit | 使用适合项目高度的最大尺寸,直至指定的尺寸。 |
Text.Fit | 使用适合项目宽度和高度的最大尺寸,直至指定的尺寸。 |
适合文本的字体大小的最小边界由minimumPointSize 或minimumPixelSize 属性指定,最大边界由font.pointSize 或font.pixelSize 属性指定。
Text { text: "Hello"; fontSizeMode: Text.Fit; minimumPixelSize: 10; font.pixelSize: 72 }
如果文本不适合项目边界内的最小字体大小,则会根据elide 属性将文本删除。
如果textFormat 属性被设置为Text.RichText
,则不会产生任何影响,因为该属性将被完全忽略。如果textFormat 设置为Text.StyledText
,那么只要文本中没有字体大小标记,该属性就会得到尊重。如果存在字体大小标记,该属性仍将尊重这些标记。这可能导致它不完全符合 fontSizeMode 设置。
hoveredLink : string |
当用户悬停文本中嵌入的链接时,该属性包含链接字符串。链接必须是富文本或 HTML 格式,hoveredLink 字符串提供对特定链接的访问。
另请参阅 linkHovered 和linkAt()。
lineCount : int |
lineHeight : real |
设置文本的行高。该值的单位可以是像素,也可以是一个乘数,具体取决于lineHeightMode 。
默认值为乘数 1.0。行高必须为正值。
lineHeightMode : enumeration |
该属性决定如何指定行高。可能的值有
常数 | 说明 |
---|---|
Text.ProportionalHeight | (默认)按行比例设置行间距(作为乘数)。例如,设置为 2 表示双倍行距。 |
Text.FixedHeight | 将行高设置为固定的行高(以像素为单位)。 |
linkColor : color |
文本中链接的颜色。
该属性适用于 StyledTexttextFormat ,但不适用于 RichText。RichText 中的链接颜色可以通过在文本中包含 CSS 样式标签来指定。
maximumLineCount : int |
minimumPixelSize : int |
该属性指定了按fontSizeMode 属性缩放的文本的最小字体像素大小。
如果fontSizeMode 为 Text.FixedSize,或font.pixelSize 为-1,该属性将被忽略。
minimumPointSize : int |
该属性指定按fontSizeMode 属性缩放的文本的最小字体点size 。
如果fontSizeMode 为 Text.FixedSize,或font.pointSize 为-1,则此属性将被忽略。
renderType : enumeration |
覆盖此组件的默认呈现类型。
支持的呈现类型有
常量 | 说明 |
---|---|
Text.QtRendering | 使用每个字形的可缩放距离字段渲染文本。 |
Text.NativeRendering | 使用特定平台技术渲染文本。 |
Text.CurveRendering | 使用直接在图形硬件上运行的曲线光栅器渲染文本。(在 Qt 6.7.0 中引入)。 |
如果希望文本在目标平台上看起来像本地文本,并且不需要文本转换等高级功能,请选择Text.NativeRendering
。将此类功能与 NativeRendering 渲染类型结合使用,效果会很差,有时甚至会出现像素化。
Text.QtRendering
和Text.CurveRendering
都是硬件加速技术。QtRendering
的速度更快,但内存消耗更大,而且在大尺寸时会出现渲染伪影。如果QtRendering
不能提供良好的视觉效果,或优先考虑减少图形内存消耗,则应将CurveRendering
作为替代选择。
默认渲染类型由QQuickWindow::textRenderType() 决定。
renderTypeQuality : int |
覆盖该组件的默认呈现类型质量。这是一个低级定制,在大多数情况下可以忽略。目前只有当renderType 是Text.QtRendering
时才会产生影响。
Text.QtRendering 使用的光栅化算法可能会在大尺寸文本中产生人工痕迹,例如尖角看起来比应有的更圆。如果这是特定文本项目的一个问题,可以增加renderTypeQuality
来提高渲染质量,但要以消耗内存为代价。
renderTypeQuality
可以是大于 0 的整数,也可以是以下预定义值之一
常数 | 说明 |
---|---|
Text.DefaultRenderTypeQuality | -1(默认值) |
Text.LowRenderTypeQuality | 26 |
Text.NormalRenderTypeQuality | 52 |
Text.HighRenderTypeQuality | 104 |
Text.VeryHighRenderTypeQuality | 208 |
此属性在 Qt 6.0 中引入。
style : enumeration |
设置附加文本样式。
支持的文本样式有
常量 | 说明 |
---|---|
Text.Normal | - 默认 |
Text.Outline | |
Text.Raised | |
Text.Sunken | Row { Text { font.pointSize: 24; text: "Normal" } Text { font.pointSize: 24; text: "Raised"; style: Text.Raised; styleColor: "#AAAAAA" } Text { font.pointSize: 24; text: "Outline";style: Text.Outline; styleColor: "red" } Text { font.pointSize: 24; text: "Sunken"; style: Text.Sunken; styleColor: "#AAAAAA" } } |
styleColor : color |
text : string |
要显示的文本。文本支持纯文本和富文本字符串。
项目将尝试自动确定是否将文本视为样式文本。这种判断使用Qt::mightBeRichText() 进行。但是,对 Markdown 的检测不是自动的。
另请参阅 textFormat 。
textFormat : enumeration |
text 属性的显示方式。
支持的文本格式有
常量 | 说明 |
---|---|
Text.AutoText | (默认)通过Qt::mightBeRichText() 启发式检测到 |
Text.PlainText | 所有样式标记都被视为纯文本 |
Text.StyledText | HTML 3.2 中经过优化的基本富文本格式 |
Text.RichText | HTML 4 的子集 |
Text.MarkdownText | CommonMark加上用于表格和任务列表的GitHub扩展(自 5.14 起) |
如果文本格式为Text.AutoText
,"文本 "项将自动判断文本是否应被视为样式化文本。这种判断是通过Qt::mightBeRichText() 进行的,它可以检测文本第一行是否存在 HTML 标记,但无法区分 Markdown 和纯文本。
Text.StyledText
Markdown 是一种优化格式,支持 HTML 3.2 风格的一些基本文本样式标记:
<b></b> - bold <del></del> - strike out (removed content) <s></s> - strike out (no longer accurate or no longer relevant content) <strong></strong> - bold <i></i> - italic <br> - new line <p> - paragraph <u> - underlined text <font color="color_name" size="1-7"></font> <h1> to <h6> - headers <a href=""> - anchor <img src="" align="top,middle,bottom" width="" height=""> - inline images <ol type="">, <ul type=""> and <li> - ordered and unordered lists <pre></pre> - preformatted All entities
Text.StyledText
解析器是严格的,要求标签正确嵌套。
Column { Text { font.pointSize: 24 text: "<b>Hello</b> <i>World!</i>" } Text { font.pointSize: 24 textFormat: Text.RichText text: "<b>Hello</b> <i>World!</i>" } Text { font.pointSize: 24 textFormat: Text.PlainText text: "<b>Hello</b> <i>World!</i>" } Text { font.pointSize: 24 textFormat: Text.MarkdownText text: "**Hello** *World!*" } } |
Text.RichText
支持更大的 HTML 4 子集,详见 "支持的 HTML 子集"页面。您最好使用 、 或 ,因为它们的性能更好。Text.PlainText
Text.StyledText
Text.MarkdownText
注意: 使用Text.MarkdownText
和支持的 HTML 子集时,某些装饰元素不会像在网络浏览器中那样呈现:
- 代码块使用default monospace font ,但周围没有高亮框
- 块引号有缩进,但引号旁边没有垂直线
truncated : bool |
wrapMode : enumeration |
设置此属性可按文本项的宽度换行文本。只有设置了明确的宽度,文本才会换行:
常量 | 说明 |
---|---|
Text.NoWrap | (默认)不进行换行。如果文本中换行不够,contentWidth ,则会超过设定的宽度。 |
Text.WordWrap | 仅在单词边界进行换行。如果单词过长,contentWidth 将超过设定宽度。 |
Text.WrapAnywhere | 换行在一行的任何一点进行,即使换行发生在单词中间。 |
Text.Wrap | 如果可能,换行会在单词边界进行;否则,换行会在行上的适当位置进行,即使是在单词中间。 |
信号文档
lineLaidOut(object line) |
在纯文本或样式文本模式下的排版过程中,每排出一行文本,就会发出该信号。在富文本模式下不会发出。指定的line 对象会提供有关当前正在排版的行的更多详细信息。
这样就有机会在排版时定位和调整行的大小。例如,它可用于创建列或围绕对象布局文本。
指定line 对象的属性如下:
属性名称 | 说明 |
---|---|
编号(只读) | 行号,以 0 开头。 |
x | 指定行在Text 元素中的 x 位置。 |
y | 指定该行在Text 元素内的 y 位置。 |
宽度 | 指定行的宽度。 |
高度 | 指定行的高度。 |
隐式宽度(只读) | 该行根据其内容自然占据的宽度,不考虑对宽度所做的任何修改。 |
isLast(最后一行)(只读 | 该行是否是最后一行。如果将宽度属性设置为不同的值,该属性会发生变化。 |
例如,这会将文本项的前 5 行向右移动 100 像素:
onLineLaidOut: (line)=> { if (line.number < 5) { line.x = line.x + 100 line.width = line.width - 100 } }
下面的示例将允许你把一个项目定位在最后一行的末尾:
onLineLaidOut: (line)=> { if (line.isLast) { lastLineMarker.x = line.x + line.implicitWidth lastLineMarker.y = line.y + (line.height - lastLineMarker.height) / 2 } }
注: 相应的处理程序是onLineLaidOut
。
linkActivated(string link) |
当用户点击文本中嵌入的链接时,将发出该信号。链接必须是富文本或 HTML 格式,link 字符串提供对特定链接的访问。
Text { textFormat: Text.RichText text: "See the <a href=\"http://qt-project.org\">Qt Project website</a>." onLinkActivated: (link)=> console.log(link + " link activated") }
示例代码将显示文本 "参见Qt 项目网站"。
点击高亮显示的链接将向控制台输出http://qt-project.org link activated
。
注: 相应的处理程序是onLinkActivated
。
linkHovered(string link) |
当用户悬停嵌入文本中的链接时,将发出该信号。链接必须是富文本或 HTML 格式,link 字符串提供对特定链接的访问。
注: 相应的处理程序是onLinkHovered
。
另请参阅 hoveredLink 和linkAt()。
方法文档
forceLayout() |
触发显示文本的重新布局。
返回x 、y (以内容坐标表示)处的链接字符串,如果该处不存在链接,则返回空字符串。
另请参阅 hoveredLink 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.