我想将文本放入一个气泡中,我希望我的气泡等于文本宽度,但如果文本长度太长,我希望文本自动换行并等于父宽度。Qml文本包装(最大宽度)
此代码的工作,但如果文本太长文本不包装:
Rectangle {
id:messageBoxCadre
width: (modelData.messageLength>25)? (wrapper.width - 20): messageBox.width+10
height: messageBox.height+5
color: modelData.myMessage ? "#aa84b2":"#380c47"
radius: 10
Text {
id:messageBox
text: '<b><font color=purple>'+modelData.message+'</font></b> '
wrapMode: "WordWrap"
}
}
,我想这一点,文本换行,但是如果文字太小泡沫宽度不等于文本大小:
Rectangle {
id:messageBoxCadre
width: (modelData.messageLength>25)? (wrapper.width - 20): messageBox.width+10
height: messageBox.height+5
color: modelData.myMessage ? "#aa84b2":"#380c47"
radius: 10
Text {
id:messageBox
width: (modelData.messageLength>25)? (wrapper.width - 20): messageBox.width
text: '<b><font color=purple>'+modelData.message+'</font></b> '
wrapMode: "WordWrap"
}
}
我已经改变了这个,我想这对perf.thx更好 – NicoMinsk 2011-06-15 12:19:33
我曾经想过触发被修改文本的改变,所以在text_field项目中创建了一个onTextChanged,但似乎在更新paintWidth之前调用onTextChanged。但是,它将允许使用另一种方法来创建动态文本框。这个评论其实只是为了完整。 – 2011-06-15 14:52:58
我更喜欢这种方法。我不需要使用'paintedWidth'进行比较,'width'也可以。 – 2016-06-05 18:40:16