我想將文本放入一個氣泡中,我希望我的氣泡等於文本寬度,但如果文本長度太長,我希望文本自動換行並等於父寬度。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