Отключить автоматическую прокрутку в текстовой области

#qt #qml #qtquickcontrols

#qt #qml #qtquickcontrols

Вопрос:

В текстовой области:

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

Когда я добавляю текст

 outputText.append( "someText" )
 

Текстовая область автоматически прокручивается вниз.

Есть ли способ отключить автоматическую прокрутку?

Спасибо, Скотт

Ответ №1:

Не уверен, как отключить прокрутку, но вид останется сверху, если вы замените его..

 outputText.append(msg)
 

с помощью..

 outputText  = msg
 

Ответ №2:

Если вы посмотрите на текстовую область 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";