QML Text 元素属性详解

QML Text 元素属性详解

wrapMode 属性详解

wrapMode属性控制文本在达到其边界宽度时如何进行换行处理。

可用值:

  1. Text.NoWrap(默认值)

    • 文本不会换行
    • 文本会延伸超出组件边界
    • 超出的文本将不可见(除非设置了clip:false)
    • 适用场景:单行标签、不允许换行的UI元素
  2. Text.WordWrap

    • 在单词边界处换行
    • 中文会在字符间换行
    • 英文会在单词间的空格处换行
    • 适用场景:正文段落、需要保持单词完整性的文本
  3. Text.WrapAnywhere

    • 在任何字符处换行
    • 不考虑语义和单词边界
    • 可能会导致单词被拆分到不同行
    • 适用场景:空间严格受限、需要尽可能多显示文本内容的情况
  4. Text.Wrap

    • 等同于Text.WordWrap,为保持向后兼容而存在
  5. Text.WrapAtWordBoundaryOrAnywhere

    • 首先尝试在单词边界处换行
    • 如果不能在单词边界换行才在任何字符处换行
    • 这是一种折中方案
    • 适用场景:优先保持阅读体验,但又必须适应有限空间的情况

elide 属性详解

elide属性定义了当文本内容超出可用空间且不能完全换行显示时,如何处理文本省略。

可用值:

  1. Text.ElideNone(默认值)

    • 不省略任何文本
    • 与wrapMode配合使用时会换行显示
    • 如果设置了最大行数限制,超出部分将被截断不显示
    • 适用场景:必须显示完整内容的文本区域
  2. Text.ElideRight

    • 在文本末尾显示省略号(…)
    • 保留文本开头部分
    • 最常用的省略方式
    • 适用场景:文件名、标题等重要信息在前面的文本
  3. Text.ElideLeft

    • 在文本开头显示省略号(…)
    • 保留文本结尾部分
    • 适用场景:文件扩展名、时间戳等重要信息在后面的文本
  4. Text.ElideMiddle

    • 在文本中间显示省略号(…)
    • 保留开头和结尾部分
    • 适用场景:长路径显示、需同时展示首尾内容的情况

其他重要文本属性

  1. maximumLineCount

    • 设置文本可显示的最大行数
    • 超出行数的文本会被截断
    • 与elide属性配合使用可显示省略号
    • 例如:maximumLineCount: 2 实现"两行文本,末尾省略"效果
  2. lineHeightlineHeightMode

    • 控制行高
    • lineHeight设置行高的具体值
    • lineHeightMode设置行高的计算方式(固定高度或比例)
  3. textFormat

    • Text.PlainText: 纯文本格式
    • Text.RichText: HTML富文本格式
    • Text.MarkdownText: Markdown格式
    • Text.AutoText: 自动检测格式(默认)
  4. horizontalAlignmentverticalAlignment

    • 控制文本的水平和垂直对齐方式
    • 水平:Text.AlignLeft, Text.AlignRight, Text.AlignHCenter, Text.AlignJustify
    • 垂直:Text.AlignTop, Text.AlignBottom, Text.AlignVCenter
  5. truncated

    • 只读属性,指示文本是否被截断
    • 可以用来检测文本是否完全显示

属性相互作用

  • wrapMode + width:只有设置了宽度限制,换行属性才会生效
  • elide + maximumLineCount:只有设置了最大行数,省略属性才会在最后一行生效
  • elide + wrapMode:当同时设置时,会先应用换行,然后在最后一行应用省略

使用示例

Text {
    width: 200
    text: "这是一段很长的测试文本,用来演示各种文本处理属性的效果和相互作用。"
    wrapMode: Text.WordWrap
    elide: Text.ElideRight
    maximumLineCount: 2
    font.pixelSize: 14
    horizontalAlignment: Text.AlignHCenter
}

这个例子会创建一个宽度为200的文本区域,文本会自动在单词边界换行,最多显示2行,如果超出2行则在第2行末尾显示省略号,同时文本在水平方向居中对齐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七贤岭↻双花红棍↺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值