Как определить ширину textItem и расположить другой элемент вправо - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть QML TextItem, где текст задан динамически. Пропускную способность я не могу определить, так как текст может содержать любое количество символов. и мне нужно разместить еще один текстовый элемент рядом с ним. как закрепить справа от текстового элемента, когда мы не можем определить ширину текста, так как текст может расти в любое время. Wrap или Elide не допускаются

Ex:

Text
    {
        id: distance
        width: //dont know what to provide

        font.bold: true

        verticalAlignment:Text.AlignBottom
        horizontalAlignment:Text.AlignLeft
        maximumLineCount: 1

        onTextChanged:
        {
            console.log("$$$$$___Text is been changed:" + txt_distance.paintedWidth +" "+ paintedHeight)

        }

        anchors
        {
            bottom: parent.bottom
            bottomMargin: 2
            left: parent.left
            leftMargin: 20
            right: //Dont know what to give

        }

и соседний предмет

Text
    {
        id: address

        font.bold: true

        verticalAlignment:Text.AlignBottom
        horizontalAlignment:Text.AlignLeft
        maximumLineCount: 1

        anchors
        {
            bottom: parent.bottom
            bottomMargin: 2
            left: distance.right <-- Please help 
            right: parent.right
            rightMargin: 20
        }
    } 

1 Ответ

0 голосов
/ 25 апреля 2018

Вам не нужно явно устанавливать width, так как он будет установлен на paintedWidth.

Ваш пример можно упростить так:

Text {
    id: distance
    text: "Hello"
}

Text {
    text: "Wagmare"
    anchors.left: distance.right
}

Еще лучшим решением было бы использование Row:

Row {
    Text {
        text: "Hello"
    }

    Text {
        text: "Wagmare"
    }
}

См. Вариант использования - отображение текста в QML

Если ширина или высота не установлены явно, чтение этих свойств вернет параметры ограничивающего прямоугольника текста (если вы явно установить ширину или высоту, вы все равно можете использовать paintWidth и покрасил высоту).

...