禁用TextArea中的自动滚动

时间:2014-06-24 20:22:13

标签: qt qml qtquickcontrols

在TextArea中:

TextArea
{
   id: outputText
   readOnly: true
   anchors.fill: parent
}

当我追加文字时

outputText.append( "someText" )

文本区域自动滚动到底部。

有没有办法关闭自动滚动功能?

谢谢, 斯科特

2 个答案:

答案 0 :(得分:0)

不确定如何禁用滚动,但如果替换,视图将保持在顶部..

outputText.append(msg)

与..

outputText += msg

答案 1 :(得分:0)

如果你看一下textArea codesource:

https://qt.gitorious.org/qt/qtquickcontrols/source/73afeab85fea60e2ce3f19b47becffc1e45a7165:src/controls/TextArea.qml#L420-433

你会看到追加功能:

function append (string) {
    edit.append(string)
    __verticalScrollBar.value = __verticalScrollBar.maximumValue
}

所以,如果你总是想要滚动条,你可以添加:

outputText.__verticalScrollBar.value = outputText.__verticalScrollBar.minimumValue

但是,如果您希望滚动条在添加文本时保持准确的位置,则应执行以下操作:

outputText.text += (outputText.text ? "\n" : "") + "someText";