У меня есть некоторый qml, который действует как вывод из приложения (вроде консоли только для чтения). Тем не менее, его использование раздражает, потому что, когда он печатает информацию, он прокручивается вверх.
Например, скажем, я печатаю строку в TextArea
каждую секунду, примерно через минуту у меня будет достаточно строк, чтобы появилась полоса прокрутки. Я прокручиваю вниз, через секунду печатается строка текста, заставляющая ее прокручиваться обратно вверх.
Желаемая функциональность, которую я хотел бы, - это автоматическая прокрутка вниз (во многом как консоль, когда она распечатывает что-то), если пользователь не отменяет это, прокручивая вверх, тогда текст должен оставаться на месте. Я надеюсь, что это имело смысл, вот некоторый код:
ScrollArea {
id: helpTextScrollArea
anchors.left: parent.left
anchors.right: parent.right
anchors.top: myButton.bottom
anchors.topMargin: 5
anchors.bottom: parent.bottom
visible: false
horizontalScrollBar.visible: false
onVisibleChanged: {
helpText.visible = visible
}
HelpTextArea {
id: helpText
width: parent.parent.width - helpTextScrollArea.verticalScrollBar.width
text: "Oops, no documentation."
onVisibleChanged: {
if(helpTextScrollArea.visible != visible) {
helpTextScrollArea.visible = visible
}
}
}
}
Flickable
{
id: flick
anchors.left: parent.left
anchors.right: parent.right
anchors.top: runStopButton.bottom
anchors.bottom: parent.bottom
anchors.topMargin: 5
TextArea{
id: messageArea
anchors.fill: parent
focus: true
readOnly: true
visible: !helpTextScrollArea.visible
wrapMode: TextEdit.Wrap
function addText(newText) {
text += newText + "\n"
}
}
}
Примечание: я не думаю, что мой Flickable что-то делает, это было частью моих экспериментов по устранению проблемы. Кроме того, я использую функцию addText
для печати в текстовую область. Я почти ничего не знаю о qml, и большая часть этого кода была написана кем-то другим, и я пытаюсь с ним работать. Спасибо!