QML类型——Text

正文

在场景中添加格式化的文本。

属性

  • advance: size
    此属性从Qt 5.10引入。
  • antialiasing: bool
    文本是否使用抗锯齿。
    只有具有renderType为Text.NativeRendering的Text才能禁用抗锯齿。
    默认值为true。
  • baseUrl: url
    此属性用于指定Text中相对URL的基本URL:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WfnzYI2K-1594801552612)(leanote://file/getImage?fileId=5f0c111550f7571d32000002)]
  • clip: bool
    为true时,如果文本超过对象的范围,则会自动裁剪超出部分。
    如果要在有限的空间中显示很长的文本,则可能要设置elide。
  • color: color
    文本颜色。
  • contentHeight: real
    返回文本的高度
  • contentWidth: real
    返回文本的宽度,包括超出的宽度(如果设置了WrapMode则由于换行不足而覆盖的宽度)
  • effectiveHorizontalAligment: enumeration
  • elide: enumeration
    当文本长度超出了父对象的宽度,则通过该属性来设置超出部分用…来表示。
    此属性不能与富文本一起使用。
    消除文本的方式:
    Text.ElideNone-默认
    Text.ElideLeft
    Text.ElideMiddle
    Text.ElideRight
  • font.bold: bool
    设置字体的粗细
  • font.capitalization: enumeration
    设置文本大小写方式:
    Font.MixedCase-允许Text中有大小写混合形式呈现。
    Font.AllUppercase-所有字符都必须以大写形式呈现。
    Font.AllLowercase-所有字符都必须以小写形式呈现。
    Font.SmallCaps-将以小写形式呈现的文本变小。
    Font.Capitalize-每个单词的第一个字符改为大写字符。
  • font.familt: string
    设置字体样式名称。
  • font.hintingPreference: enumeration
    在文本上设置首选提示。
  • font.italic: bool
    设置字体是否为斜体显示。
  • font.kerning: bool
    绘制文本时启用或禁用字距调整OpenType功能。禁用此功能可能会提高创建或更改文本的性能,但会影响某些外观。
Text { text: "OATS FLAVOUR WAY"; font.kerning: false }

此属性在Qt 5.10中引入。

  • font.letterSpacing: real
    设置字符的间距。
    正值将增加间距像素;负值则减小。
  • font.pixelSize: int
    设置字体的像素大小。
    使用该属性使字体显示大小依赖于设备。
  • font.pointSize: real
    设置字体大小,以磅为单位,值必须大于0.
    该属性不依赖于设备。
  • font.preferShaping: bool
  • font.strikeout: bool
    设置字体是否显示删除线的样式。
  • font.styleName: string
    设置字体的样式名称。
    样式名称不区分大小写,如果设置,字体将与样式名称匹配,而不与字体属性(font.weight,font.bold,font.italic)匹配。
    如下示例:
Text {
    id: light
    text: qsTr("Source Han Sans K Light")
    font.family: "Source Han Sans K"
    font.pixelSize: 20
    font.styleName : "Light"
}
  • font.underline: bool
    设置文本是否带下划线。
  • font.weight: enumeration
    设置字体的粗细。
    枚举:
    Font.Thin
    Font.Light
    Font.ExtraLight
    Font.Normal - the default
    Font.Medium
    Font.DemiBold
    Font.Bold
    Font.ExtraBold
    Font.Black
  • font.wordSpacing: real
    设置字体的字间距。
  • fontSizeMode: enumeration
    此属性指定字体大小显示的模式。(测试后,没有发现效果)
Text.FixedSize (default) - The size specified by font.pixelSize or font.pointSize is used.
Text.HorizontalFit - The largest size up to the size specified that fits within the width of the item without wrapping is used.
Text.VerticalFit - The largest size up to the size specified that fits the height of the item is used.
Text.Fit - The largest size up to the size specified that fits within the width and height of the item is used.
  • horizontalAlignment: enumeration
  • hoveredLink: string
    当鼠标悬浮在文本中嵌入的链接时,返回该链接字符串。
    链接必须为富文本格式或HTML格式,并且hoveredLink字符串提供对特定链接的访问。
    此属性在Qt5.2引入。
    另外参考:linkHovered和linkAt()
  • leftPadding: real
  • lineCount: int
    返回文本项中可见的行数。
    此属性不支持富文本格式。
  • lineHeight: real
    设置文本的行高。该值的单位可以是像素,可以是倍数,取决于lineHeightMode。
    默认值为1.0的倍数,线高必须为正值。
  • lineHeightMode: enumeration
    此属性指定线高类型:
    Text.ProportionalHeight (默认值)-设置与行成比例的间距(作为乘数)。例如,设置值为2表示双倍间距。
    Text.FixedHeight 将行高设置为固定杭盖(以像素为单位)。
  • linkColor: color
    文本项中链接的颜色。
  • maximumLineCount: int
    设置此属性来限制文本项显示的行数。
    此属性不支持富文本。
  • minimumPixelSize: int
    获取文本最小像素大小。
  • minimumPointSize: int
    获取文本最小字体点大小。
  • padding: real
  • renderType: enumeration
    设置渲染类型。
    支持的渲染类型:
    Text.QtRendering
    Text.NativeRendering
    如果希望文本在目标平台上看起来是本机的,并且不需要高级功能(如文本转换),请选择Text.NativeRendering。
  • rightPadding: real
  • 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" }
}

示例结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JAL3hEOt-1594801552614)(leanote://file/getImage?fileId=5f0cff8f50f7571d32000003)]

  • styleColor: color
    定义文本样式使用的辅助颜色。
    styleColor用作文本的轮廓颜色,以及轮廓凸起或凹陷的阴影颜色。如果未设置style,则该属性无效。
Text { font.pointSize: 18; text: "hello"; style: Text.Raised; styleColor: "gray" }
  • text: string
    要显示的文本内容。文本支持纯文本字符串和富文本字符串。
    该文本会自动校验是否为样式文本,使用Qt::mightBeRichText()来校验。
  • textFormat: enumeration
    设置文本显示格式类型。
内容 注释
Text.AutoText (默认值)通过Qt::mightBeRichText()校验
Text.PlainText 所有样式视为纯文本
Text.StyledText 和HTML3.2一样,优化基本富文本
Text.RichText HTEML4的子集
Text.MarkdownText CommonMark以及表格和任务列表的Github扩展(从5.14开始)

Text.StyledText是一种优化格式,支持
HTML3.2样式中的一些基本文本样式标记:

 - bold
 - strike out (removed content)
 - strike out (no longer accurate or no longer relevant content)
 - bold
 - italic

- new line

- paragraph - underlined text

to
- headers - anchor - inline images
    ,
      and
    • - ordered and unordered lists
       - preformatted
      > < &
      

Text.StyledText解析器很严格,要求标签正确嵌套。

Column {
    Text {
        font.pointSize: 24
        text: "Hello World!"
    }
    Text {
        font.pointSize: 24
        textFormat: Text.RichText
        text: "Hello World!"
    }
    Text {
        font.pointSize: 24
        textFormat: Text.PlainText
        text: "Hello World!"
    }
    Text {
        font.pointSize: 24
        textFormat: Text.MarkdownText
        text: "**Hello** *World!*"
    }
}

结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f20yJFkx-1594801552616)(leanote://file/getImage?fileId=5f0d03ac50f7571d32000004)]

  • topPadding: enumeration
  • truncated: bool
    如果文本被maximumLineCount或elide属性截断,则返回true。
    富文本格式不支持。
  • verticalAlignment: enumeration
  • wrapMode: enumeration
    设置此属性可将文本换行显示。(仅当设置了显示宽度时,才会生效)
    枚举值:
    Text.NoWrap - (默认)不支持换行。
    Text.WordWrap - 如果单词太长,超过显示边界,则将该单词换行。
    Text.WrapAnywhere - 支持任意字符的换行。
    Text.Wrap - 一般换行发生在单词边界处;特殊情况下发生在单词中间。

信号

  • lineLaidOut(line)
    对于在纯文本或带样式的文本模式下的布局过程中,布局每一行都会发送该信号。
    富文本格式不会发送该信号。
    作用:使每一行都能在布局中调整其位置和大小。
    参数line的属性有:
    |属性名|描述|
    |–|--|
    |number|行号,从0开始计数|
    |x|指定行在Text元素内的X位置|
    |y|指定行在Text元素内的Y位置|
    |width|指定行的宽度|
    |height|指定行的高度|
    示例:将前5行向右移动100个像素(对应的处理函数:onLineLaidOut)
onLineLaidOut: {
    if (line.number < 5) {
        line.x = line.x + 100
        line.width = line.width - 100
    }
}
  • linkActivated(link)
    当用户单击文本中嵌入的链接时,将发送该信号。
    链接必须是富文本或HTML格式,并且链接字符串提供对特定链接的访问。
Text {
            textFormat: Text.RichText
            text: "See the Qt Project website."
            onLinkActivated: console.log(link + " link activated")
    }
  • linkHovered(link)
    当鼠标悬停在文本中嵌入的链接时,将发送该信号。
    链接必须是富文本或HTML格式,并且链接字符串提供对特定链接的访问。

方法

  • forceLayout()
    触发所显示的文本重新布局。
  • linkAt(real x, real y)
    返回位于(x,y)点处的链接字符串,如果该点不存在链接,则返回一个空字符串。

你可能感兴趣的:(QML)