I would like to get the real width & height of a Text
element. If I use the paintedWidth
& paintedHeight
properties, I don't get it. For example:
Rectangle {
color: "green"
width: a_text.paintedWidth
height: a_text.paintedHeight
Text {
id: a_text
text: "r"
color: "white"
anchors.centerIn: parent
}
}
If I run that code, I see some green space on the left of the "r"
on top of the "r"
and below the "r"
. So I'm not getting the real width & height of the Text
. I mean, the width & height of the white pixels.
Any way to do it?
P.S. Also I would need the relative position of the real top-left corner of the text, I mean, the x & y of the top-left white pixel relative to the "official" top-left pixel of the Text
.
The solution is to use the new TextMetrics
element (requires QtQuick 2.5), and its tightBoundingRect
property, to get the real width
& heigth
of the foreground text:
import QtQuick 2.5 // required!
Rectangle {
color: "green"
width: t_metrics.tightBoundingRect.width
height: t_metrics.tightBoundingRect.height
Text {
id: a_text
text: "r"
color: "white"
anchors.centerIn: parent
}
TextMetrics {
id: t_metrics
font: a_text.font
text: a_text.text
}
}
"your_text_object.paintedHeight" or "your_text_object.paintedWidth": is what you need to get the height of the text, including height past the height which is covered due to there being more text than fits in the set height.
Text QML Element paintedHeight
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With