Dans la documentation de Item
vous pouvez trouver ceci:de performance lors de l'utilisation Text.implicitWidth dans QML
Remarque: Utilisation implicitWidth du texte ou TextEdit et réglage de la largeur n'engagent explicitement une pénalité de performance que le texte doit être étalé deux fois.
donc je ne devrais pas écrire quelque chose comme ceci:
Text {
width: implicitWidth
text: 'my text defines the width'
}
Cela signifie, si je ne mets pas la largeur par d'autres moyens, je ne peux pas l'ancre significative au Text
.
Je me demande si la même peine de performance s'applique à cette structure:
Item {
id: myAnchorableTextBoundingBox
width: myText.implicitWidth
height: myText.implicitHeight
Text {
id: myText
text: 'my text defines the width'
}
}
Ou est-ce une solution probable pour ce usecase?
Il m'a même permet de Elide une largeur maximale comme ceci:
Rectangle {
color: 'transparent'
border.color: 'red'
width: myText.width + 2
height: myText.height + 2
}
Rectangle {
id: myAnchorableTextBoundingBox
y: 1
x: 1
border.color: 'black'
width: myText.truncated ? myText.width : myText.implicitWidth
height: myText.implicitHeight
Text {
id: myText
text: 'my text defines the width until it elides, then the width is used as limit'
elide: Text.ElideRight
width: 200
}
}
Je construirais un imediately Component
de cela, si je peux être sûr, il n'y aura pas (trop grande) une pénalité .