【发布时间】:2016-12-19 14:40:05
【问题描述】:
在Item的文档中可以找到:
注意:使用 Text 或 TextEdit 的implicitWidth 并显式设置宽度会导致性能损失,因为文本必须布局两次。
所以我不应该这样写:
Text {
width: implicitWidth
text: 'my text defines the width'
}
这意味着,如果我不通过其他方式设置宽度,我将无法有意义地锚定到 Text。
我想知道同样的性能损失是否适用于这种结构:
Item {
id: myAnchorableTextBoundingBox
width: myText.implicitWidth
height: myText.implicitHeight
Text {
id: myText
text: 'my text defines the width'
}
}
或者这是这个用例的一个可能的解决方法?
它甚至允许我像这样省略最大宽度:
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
}
}
我会立即建立一个Component,如果我可以肯定的话,不会有(太大的)惩罚。
【问题讨论】: