Qt5.12 QML——TextMetrics字体长度的测量指标

编程入门 行业动态 更新时间:2024-10-27 06:27:21

Qt5.12 QML——TextMetrics字体长度的<a href=https://www.elefans.com/category/jswz/34/1770786.html style=测量指标"/>

Qt5.12 QML——TextMetrics字体长度的测量指标

序言

用QML做一个按钮时,有需求是要求只有底下一横,但是不能靠太近,而且长度要刚刚好和字的长度一致,正当我查也查不出来时,被某群的群友启发,知道有一个TextMetrics可以提供相应字体的长度,但是网上没有多少相关的文档,所以我来破这个瓜

一、TextMetrics的用处

TextMetrics可以提供在初始化时相应字体的长度,记住重点!是在初始化时的长度

二、TextMetrics的简单用法

一般来说,我只需要赋予TextMetrics 的font属性和text属性即可,这样就已经满足需求了,更多细则看Qt助手即可

TextMetrics {id: pageTextMetricsfont {family: "serif"pixelSize: 25}text: "交互指令"
}

如上,我给TextMetrics 赋予了一个 "serif"字体 25像素的字体格式(未设置的自动设为默认值),和相对应的“交互指令”,这样,我们就可以从中获取到四个字的实际代码长度了。

在使用时只需要这样调用其的width和height即可

ctx.beginPath()
ctx.moveTo( -pageTextMetrics.width / 2, 14)
ctx.lineTo( pageTextMetrics.width / 2, 14)
ctx.stroke()

记住:受控件实际缩放到界面,会导致实际长度有所变化,很可能会导致变化后的长度和代码的长度不一样,所以最好在代码里将其对齐就行。

综上,便得到了我设置的“交互指令”的长度了,至于我序言写的控件是怎么弄的,我只能说是用Canvas画出来的,要讲Canvas的话就未免太长了,我还没掌握好,加之我只是讲TextMetrics的用法,故此按下不表。

三、其余属性拓展

elide : enumeration:该属性的作用是,当实际文字长度超过赋予限制的文字长度elideWidth时,该TextMetrics的属性elidedText就会出现省略号,而出现的形式,则通过不同的枚举变量来显示

Qt::ElideNone - No eliding; this is the default value.
Qt::ElideLeft - For example: "...World"
Qt::ElideMiddle - For example: "He...ld"
Qt::ElideRight - For example: "Hello..."

elideWidth : real:与上者相搭配,赋予该属性,超过该宽度则会出现省略号

elidedText : string:这是呈现省略号时的text版本,比如说该属性保存的文本是"Hello…"

text : string:该属性保存用于度量的文本,如果已经赋予了值,可直接读取为实际的文本,即使超过了省略宽度,也不会出现上者一般的省略号修饰

未完待续…

更多推荐

Qt5.12 QML——TextMetrics字体长度的测量指标

本文发布于:2023-06-29 10:41:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/943614.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:测量   长度   字体   指标   TextMetrics

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!