0%

Text属性说明

继承自 Item
相关控件:TextEdit

Text可以显示纯文本和富文本,提供只读文本。对于可编辑文本,请参阅TextEdit

本文: https://www.lovejia.win/blog/article/Text.html
参考原文:http://doc.qt.io/qt-5/qml-qtquick-text.html
参考译文:http://blog.csdn.net/u012419303/article/details/45377387

属性说明

baseUrl : url

此属性指定基本URL,用于解析文本中的相对URL。
urls被解析为在与基本URL的目标相同的目录中,意味着在最后一个“/”之后的路径的任何部分将被忽略。
默认值是实例化Text项的QML文件的url。

bottomPadding : real / leftPadding : real / padding : real / rightPadding : real / topPadding : real

这些属性在内容周围保留了填充。除了contentWidth和contentHeight之外,还保留了此空间。

clip : bool

此属性保存文本是否被剪裁。
注意:如果文本不适合边界矩形,它会突然切碎。如果要在有限的空间中显示可能较长的文本,可能需要elide改用。

color : color

文本颜色。

contentHeight : real

返回文本的高度,包括高度超过所覆盖的高度,由于有更多的文本,而不是在设置的高度匹配覆盖。

contentWidth:real

返回文本的宽度,包括超过在WrapMode设置时由于不足的包裹覆盖的宽度的宽度。

effectiveHorizontalAlignment : enumeration / horizontalAlignment : enumeration / verticalAlignment : enumeration

设置文本项目宽度和高度内文本的水平和垂直对齐方式。默认情况下,文本与顶部垂直对齐。水平对齐遵循文本的自然对齐,例如从左到右读取的文本将与左对齐。
对horizontalAlignment的有效值是text.alignleft,text.alignright,text.alignhcenter和text.alignjustify。verticalAlignmen的有效值是text.aligntop,text.alignbottom和text.alignvcenter。
注意:对于单行文本,文本的大小是文本的区域。在这种常见的情况下,所有的比对都是等效的。如果你想让文本在其父对象中居中,那么你需要修改Item :: anchors,或者将horizontalAlignment设置为Text.AlignHCenter,并将宽度绑定到父对象的宽度。
当使用附加属性LayoutMirroring :: enabled以镜像应用程序布局时,文本的水平对齐也将被镜像。但是,horizontalAlignment将保持不变。要查询Text的有效水平对齐方式,请使用只读属性effectiveHorizontalAlignment。

elide : enumeration

设置此属性可以删除适合Text项宽度的文本部分。文本只有在设置了显式宽度时才会删除。宽度不足显示文本,显示为省略号,此属性不能与富文本一起使用。
Eliding可以是:
Text.ElideNone - 默认值
Text.ElideLeft - 前
Text.ElideMiddle - 中
Text.ElideRight - 后
如果此属性设置为Text.ElideRight,它可以与包装文本一起使用。文本只会删除,如果maximumLineCount,或height已经设置。如果同时maximumLineCount和height设置,maximumLineCount将适用,除非行不会在允许的高度契合。
如果文本是多长度字符串,而模式不是Text.ElideNone,将使用适合的第一个字符串,否则将省略最后一个字符串。
多长度字符串从长到长排序,由Unicode“字符串终结符”字符分隔U009C(使用”\u009C”或写在QML中”\x9C”)。

font.bold : bool

设置字体粗细是否为粗体。

font.capitalization : enumeration

设置文本的大写。
Font.MixedCase: 默认不改变,
Font.AllUppercase: 全部大写
Font.AllLowercase: 全部小写
Font.SmallCaps: 小型大写字母(即小写字母变为大写但不改变大小)
Font.Capitalize: 将首字母大写

font.family : string

设置字体的家族名称。
家族名称不区分大小写,并且可以可选地包括铸造厂名称,例如“Helvetica [Cronyx]”。如果该系列可从多个铸造厂获得,并且未指定铸造厂,则选择任意铸造厂。如果该族不可用,则将使用字体匹配算法来设置族。

font.hintingPreference : enumeration

设置文本的首选提示。这是一个暗示底层文本呈现系统使用一定水平的提示,并且跨平台有不同的支持。有关更多详细信息,请参阅QFont :: HintingPreference的文档中的表。
注意:此属性只有与渲染类型Text.NativeRendering一起使用时才有效。
Font.PreferDefaultHinting - 为目标平台使用默认提示级别。
Font.PreferNoHinting - 如果可能,渲染文本而不暗示字形的轮廓。文本布局将是排版准确的,使用与打印时使用的相同的度量。
Font.PreferVerticalHinting - 如果可能,渲染文本没有水平提示,但将字形对齐到垂直方向的像素网格。文本将在密度太低而不能准确呈现字形的显示器上显得更清晰。但是,由于字形的水平度量是未暗示的,所以文本的布局将可以扩展到更高密度的设备(例如打印机),而不影响诸如换行之类的细节。
Font.PreferFullHinting - 如果可能,在水平和垂直方向呈现文本提示。文本将被改变以优化目标设备上的可读性,但是由于度量将取决于文本的目标大小,字形,换行符和其他印刷细节的位置将不会缩放,这意味着文本布局可以看起来在具有不同像素密度的设备上不同。

font.italic : bool

设置字体是否具有斜体样式。

font.letterSpacing : real

设置字体的字母间距。
字母间距更改字体中各个字母之间的默认间距。正值通过相应的像素增加字母间距; 负值减小间距。

font.pixelSize : int

以像素为单位设置字体大小。
使用此功能使字体设备相关。用于pointSize以与设备无关的方式设置字体的大小。

font.pointSize : real

以点为单位设置字体大小。点大小必须大于零。

font.strikeout : bool

设置字体是否具有删除样式。

font.styleName : string

设置字体的样式名称。
样式名称不区分大小写。如果设置,字体将匹配样式名称,而不是字体属性font.weight,font.bold和font.italic。

font.underline : bool

设置文本是否带下划线。

font.weight : enumeration

设置字体的权重。
权重可以是下列之一:
Font.Thin
Font.Light
Font.ExtraLight
Font.Normal - 默认值
Font.Medium
Font.DemiBold
Font.Bold
Font.ExtraBold
Font.Black

font.wordSpacing : real

设置字体的字间距。
字间距会更改单个字词之间的默认间距。正值将字间距增加对应的像素量,而负值相应地减小字间距。

fontSizeMode : enumeration

此属性指定如何确定显示的文本的字体大小。可能的值为:
Text.FixedSize(默认) - 使用由font.pixelSize或font.pointSize指定的大小。
Text.Horizo​​ntalFit - 使用最大大小直到指定的大小,该大小适合不包装的项目的宽度。
Text.VerticalFit - 使用最大大小直到指定的大小,适合项目的高度。
Text.Fit - 使用最大尺寸,指定的大小适合项目的宽度和高度。
装文本的字体大小有由指定的约束最小minimumPointSize或minimumPixelSize财产和最大约束或者通过指定font.pointSize或font.pixelSize属性。
如果文本不适合在最小字体大小的项目边界内,则文本将根据elide属性省略。

当用户悬停嵌入在文本中的链接时,此属性包含链接字符串。链接必须是富文本格式或HTML格式,hoveredLink字符串提供对特定链接的访问。

lineCount : int

返回文本项中可见的行数。
富文本不支持此属性。

lineHeight : real

设置文本的行高。该值可以是像素或乘数,具体取决于lineHeightMode。
默认值为1.0的乘数。行高必须为正值。

highlightResizeVelocity : real

控制highlight移动或变化的动画速度,默认值是400pixels/second.

lineHeightMode : enumeration

此属性确定如何指定行高。可能的值为:
Text.ProportionalHeight(默认) - 这将设置与线成比例的间距(作为乘数)。例如,对于双间距,设置为2。
Text.FixedHeight - 这将行高设置为固定的行高(以像素为单位)。

linkColor : color

文本中链接的颜色。
此属性与StyledText textFormat 一起使用,但不与RichText一起使用。RichText中的链接颜色可以通过在文本中包括CSS样式标签来指定。

maximumLineCount : int

设置此属性以限制文本项将显示的行数。如果elide设置为Text.ElideRight,则文本将被适当删除。默认情况下,这是最大可能的整数的值。
富文本不支持此属性。

minimumPixelSize : int

此属性指定由fontSizeMode属性缩放的文本的最小字体像素大小。
如果fontSizeMode为Text.FixedSize或font.pixelSize为-1,则忽略此属性。

minimumPointSize : int

此属性指定由fontSizeMode属性缩放的文本的最小字体点大小。
如果fontSizeMode为Text.FixedSize或font.pointSize为-1,则忽略此属性。

renderType : enumeration

支持的渲染类型有:
Text.QtRendering - 默认值
Text.NativeRendering
如果希望文本在目标平台上看起来是原生的,并且不需要高级功能(如文本转换),选择Text.NativeRendering。将这些特性与NativeRendering渲染类型结合使用将提供较差的和有时像素化的结果。

style : enumeration

设置其他文本样式。
支持的文本样式包括:
Text.Normal - 默认值
Text.Outline
Text.Raised
Text.Sunken

styleColor : color

定义文本样式使用的辅助颜色。
styleColor用作轮廓文本的轮廓颜色,以及用作凸起或凹陷文本的阴影颜色。如果没有设置样式,则根本不使用样式。

text : string

要显示的文本。文本支持纯文本字符串和富文本字符串。
项目将尝试自动确定文本是否应被视为样式文本。这个确定是使用Qt :: mightBeRichText()。

textFormat : enumeration

应显示文本属性的方式。
支持的文本格式有:
Text.AutoText(默认)
Text.PlainText
Text.StyledText
Text.RichText
如果文本格式是Text.AutoText文本项,则会自动确定文本是否应被视为样式文本。这个确定是使用Qt :: mightBeRichText(),它使用一个快速,因此简单的启发式。它主要检查在第一个换行符之前是否存在看起来像标签的内容。虽然结果在正常情况下可能是正确的,但不能保证。

truncated : bool

如果maximumLineCount文本被截断或省略,返回true。
富文本不支持此属性。

wrapMode : enumeration

设置此属性以将文本包装到文本项的宽度。如果已经设置了显式宽度,文本将会换行。wrapMode可以是以下之一:
Text.NoWrap:默认,不换行
Text: WordWrap: 在单词边界进行换行
Text.WrapAnywhere: 任意位置换行,不管单词
Text.Wrap: 尽可能在单词边界换行,否则任意点换行

信号说明

lineLaidOut(object line)

对于在布局过程期间布置的每行文本,发出此信号。指定的线对象提供有关当前布局的线的更多详细信息。
这提供了定位和调整线路的机会,因为它正在布局。它可以例如用于创建列或围绕对象布置文本。
指定的线对象的属性是:
1、number(只读)
2、X
3、y
4、width
5、height
相应的处理程序是onLineLaidOut。

当用户点击嵌入在文本中的链接时,发出此信号。链接必须是富文本格式或HTML格式,链接字符串提供对特定链接的访问。
相应的处理程序是onLinkActivated。

当用户悬停嵌入在文本中的链接时,发出此信号。链接必须是富文本格式或HTML格式,链接字符串提供对特定链接的访问。
相应的处理程序是onLinkHovered。

方法说明

doLayout()

触发显示文本的重新布局。

linkAt(real x,real y)

返回在内容坐标中的点x,y处的链接字符串,如果在该点没有链接,则返回空字符串。

功能简述

Text可以显示纯文本和富文本,提供只读文本。使用HTML样式标记定义富文本。

下面的例子定义了字体和大小的红色文本:

1
2
3
4
5
6
7
import QtQuick 1.0  
Text {
text: "Hello World!"
font.family: "Helvetica"
font.pointSize: 24
color: "red"
}

使用HTML样式标记定义富文本:

1
2
3
Text {
text: "<b>Hello</b> <i>World!</i>"
}

注意:受支持的HTML子集受到限制。此外,如果文本包含加载远程图像的HTML img标签,则会重新加载文本。

下面例子使用十六进制符号定义的绿色文本示例:

1
2
3
4
Text {
color: "#00FF00"
text: "green text"
}

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

1
2
3
4
Text {
color: "steelblue"
text: "blue text"
}

下面的例子设置文本的大小写:

1
2
3
4
Text { 
text: "Hello";
font.capitalization: Font.AllLowercase
}

下面的例子显示设置文本的首选提示与渲染类型Text.NativeRendering一起使用时才有效:

1
2
3
Text { 
text: "Hello"; renderType: Text.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting
}

下面的例子设置文本样式:

1
2
3
4
5
6
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" }
}

下面的例子显示Text.StyledText是一种优化的格式,支持一些基本的文本样式标记,以HTML 3.2的样式:

1
2
3
4
5
6
7
8
9
10
11
12
13
<b></b> - bold
<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
&gt; &lt; &amp;

Text.StyledText 解析器是严格的,要求标签正确嵌套:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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>"
}
}

示例将文本项目的前5行向右移动100像素:

1
2
3
4
5
6
onLineLaidOut: {
if (line.number < 5) {
line.x = line.x + 100
line.width = line.width - 100
}
}

示例将显示文本“查看Qt项目网站 ”,单击突出显示的链接将输出http://qt-project.org link activated到控制台:

1
2
3
4
5
Text {
textFormat: Text.RichText
text: "See the <a href=\"http://qt-project.org\">Qt Project website</a>."
onLinkActivated: console.log(link + " link activated")
}
------本文结束    感谢阅读------
你打赏你的,我分享我的!