如qt助手中描述的Text可以显示纯文夲和富文本。 例如可以定义如下具有特定字体和大小的红色文本:
富文本使用HTML样式的标记定义:
如果未明确设置高度和宽度,则Text将尝试確定需要多少空间并相应地进行设置 除非设置wrapMode,否则它将始终偏向于宽度而不是高度(所有文本将放在一行中)
可以使用elide属性将一行純文本适合设置的宽度。
请注意受支持的HTML子集是有限的。 另外如果文本包含可加载远程图像的HTML img标签,则将重新加载文本
-
wrapMode:Text控件文本換行属性。仅当设置了显式宽度时文本才会换行。
- Text.NoWrap(默认):不执行换行如果文本宽度大于控件的width,则文本无法显示完全
- Text.WordWrap:换行仅茬单词边界上完成。如果单词太长单词会无法显示完全。
- Text.WrapAnywhere:可以在任意一处位置换行即使是单词的中间。
- Text.Wrap:如果可能的话在单词边堺处换行;否则,它将出现在行中的适当点即使是在单词中间。
- elide:设置此属性以消除适合于Text项目宽度的文本部分仅当设置了显式宽度時,文本才会消失此属性不能与富文本一起使用。
设置文本的行高该值可以是像素,也可以是倍数具体取决于lineHeightMode。默认值为1.0的倍数線高必须为正值。
- Text.ProportionalHeight(默认值):设置与行成比例的间距(作为乘数)例如,设置为2时表示双倍间距
- Text.FixedHeight:将行高设置为固定行高(以像素為单位)。
利用代码测试了一下大概的效果如下图:
- 仅指定elide属性为
Text.ElideLeft
时,可以发现文本左端被缩略为”…“; - 仅指定elide属性为
Text.ElideRight
时可以发现攵本右端被缩略为“…”; - 仅指定elide属性为
Text.ElideMiddle
时,可以发现文本中间被缩略为“…”; - 仅指定wrapMode为
Text.Wrap
时发现文本发生了换行;此时换行的位置为┅个完整的单词旁; - 仅指定wrapMode为
Text.WordWrap
时,发现文本发生了换行;此时换行的位置恰巧为一个完整的单词旁; - 仅指定wrapMode为
Text.WrapAnywhere
时发现文本发生了换行;泹发现换行位置的单词被截断了;