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.HorizontalFit - 使用最大大小直到指定的大小,该大小适合不包装的项目的宽度。
Text.VerticalFit - 使用最大大小直到指定的大小,适合项目的高度。
Text.Fit - 使用最大尺寸,指定的大小适合项目的宽度和高度。
装文本的字体大小有由指定的约束最小minimumPointSize或minimumPixelSize财产和最大约束或者通过指定font.pointSize或font.pixelSize属性。
如果文本不适合在最小字体大小的项目边界内,则文本将根据elide属性省略。
hoveredLink : string
当用户悬停嵌入在文本中的链接时,此属性包含链接字符串。链接必须是富文本格式或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。
linkActivated(string link)
当用户点击嵌入在文本中的链接时,发出此信号。链接必须是富文本格式或HTML格式,链接字符串提供对特定链接的访问。
相应的处理程序是onLinkActivated。
linkHovered(string link)
当用户悬停嵌入在文本中的链接时,发出此信号。链接必须是富文本格式或HTML格式,链接字符串提供对特定链接的访问。
相应的处理程序是onLinkHovered。
方法说明
doLayout()
触发显示文本的重新布局。
linkAt(real x,real y)
返回在内容坐标中的点x,y处的链接字符串,如果在该点没有链接,则返回空字符串。
功能简述
Text可以显示纯文本和富文本,提供只读文本。使用HTML样式标记定义富文本。
例
下面的例子定义了字体和大小的红色文本:
1 | import QtQuick 1.0 |
使用HTML样式标记定义富文本:
1 | Text { |
注意:受支持的HTML子集受到限制。此外,如果文本包含加载远程图像的HTML img标签,则会重新加载文本。
下面例子使用十六进制符号定义的绿色文本示例:
1 | Text { |
使用SVG颜色名称定义的钢蓝色文本示例:
1 | Text { |
下面的例子设置文本的大小写:
1 | Text { |
下面的例子显示设置文本的首选提示与渲染类型Text.NativeRendering一起使用时才有效:
1 | Text { |
下面的例子设置文本样式:
1 | Row { |
下面的例子显示Text.StyledText是一种优化的格式,支持一些基本的文本样式标记,以HTML 3.2的样式:
1 | <b></b> - bold |
Text.StyledText 解析器是严格的,要求标签正确嵌套:
1 | Column { |
示例将文本项目的前5行向右移动100像素:
1 | onLineLaidOut: { |
示例将显示文本“查看Qt项目网站 ”,单击突出显示的链接将输出http://qt-project.org link activated到控制台:
1 | Text { |