如何滚动到QML TextArea中的行?

时间:2019-06-18 09:50:48

标签: scroll qml textarea

如何在多行富文本QML TextArea中滚动到特定行?有positionToRectangle,但是只接受一个位置,它似乎不适合多行文字。

2 个答案:

答案 0 :(得分:1)

我建议尝试根据行号乘以行高来计算位置。您可以像这样计算一行的高度:

(textArea.implicitHeight - 2 * textArea.textMargin) / textArea.lineCount

这可能会帮助您使用positionToRectangle

编辑:事后,您是否尝试过设置cursorPosition

答案 1 :(得分:0)

TextArea本身不能滚动(参见Scrollable TextArea):

  

如果要使TextArea可滚动,可以将其放置在ScrollView中。

然后,您只需要设置contentY中的contentItem

ScrollView {
    id: view
    width: parent.width
    height: 60
    TextArea  {
        text: "A\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL"
    }
}

Button {
    text: "scroll"
    onClicked: view.contentItem.contentY += 10
}