如果用户在TextField
中输入长文本,我想减小字体大小。有没有办法知道当前文本的渲染范围?
答案 0 :(得分:1)
据我所知,不可能直接做。但是,您可以通过使用包含所需属性的不可见项来作弊:
Text {
id: hiddenText
anchors.fill: tf
text: tf.text
font.pixelSize: tf.font.pixelSize
visible: false
}
TextField {
id: tf
width: 100
height: 60
font.pixelSize: 25
onTextChanged: {
while ((hiddenText.contentWidth > hiddenText.width) || (hiddenText.contentHeight > hiddenText.height)) {
font.pixelSize -= 1
}
}
}
如果用户删除某些输入,您必须对缩放文本执行相同的操作。 Text
组件不包含边框,因此您必须将其width
减少几个像素,以使其与TextField
的大小相同。
另外,请查看TextArea
或TextInput
。它们可能符合您的需求。