Chciałbym umieścić tekst wewnątrz bąbelka i chcę, aby moja bańka była równa szerokości tekstu, ale jeśli długość tekstu jest zbyt długa, chciałbym, aby tekst zawijał się automatycznie i być równe szerokości rodzica.Zawijanie tekstu Qml (maksymalna szerokość)
Ten kod działa, ale tekst nie jest zawijany, jeśli tekst jest zbyt długi:
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"
}
}
i próbowałem to Oblewanie tekstem, ale jeśli tekst jest zbyt mała szerokość bańka nie jest równa tekstu rozmiar:
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"
}
}
Zmieniłem to, przypuszczam, że jest lepsze dla perf.thx – NicoMinsk
Zrobiłem trochę z pomysłem wywołania zmiany na modyfikowanym tekście, więc tworzenie onTextChanged w obrębie elementu text_field, ale wydaje się to onTextext zmienił się przed aktualizacją paintWidth. Jednak pozwoliłoby to na alternatywny sposób posiadania dynamicznego pola tekstowego. Ten komentarz jest naprawdę tylko dla kompletności. –
Podobało mi się to podejście bardziej. Do porównania nie musiałem używać 'paintedWidth', działało też' width'. –