2016-08-22 3 views
2

Я хочу нарисовать прямоугольник вокруг объекта QML Text, который использует перенос слов. TextMetrics похоже, что это будет идеально, но, похоже, он не поддерживает завернутый текст.Ограничительная коробка обернутого текста

Как я могу измерить, как текст выложен в объекте Text? Должен ли я соответствовать логике обертывания и вручную вычислять смещения с использованием TextMetrics и FontMetrics?

ответ

3

Вы можете использовать contentWidth и contentHeight:

Text { 
    text: "..." 
    wrapMode: Text.Wrap 

    Rectangle { 
     border.color: "red" 
     color: "transparent" 
     width: parent.contentWidth 
     height: parent.contentHeight 
    } 
} 
+0

Если у меня есть 'Text {ширина: 400; высота: 400; wrapMode: Text.WordWrap; text: "hi"} 'прямоугольник будет квадратом 400x400, вместо того, чтобы соответствовать только словам. – Phrogz

+0

Вы можете использовать [contentWidth] (http://doc.qt.io/qt-5/qml-qtquick-text.html#contentWidth-prop) и [contentHeight] (http://doc.qt.io/qt -5/QML-QtQuick-text.html # contentHeight-проп). – jpnurmi

+0

Отвечено обновлено :) – jpnurmi

Смежные вопросы