Ho un qml che funge da output dell'applicazione (un po 'come una console di sola lettura). Tuttavia, è fastidioso da usare perché mentre stampa le informazioni scorre verso l'alto.Memorizza posizione di scorrimento nell'elemento QML
Ad esempio, diciamo che stampo una riga sul mio TextArea
ogni secondo, dopo un minuto o così, avrò abbastanza linee che ora ho una barra di scorrimento. Scorro verso il basso, un secondo dopo, viene stampata una riga di testo che lo fa scorrere verso l'alto.
La funzionalità desiderata che desidero è quella di scorrere automaticamente verso il basso (molto simile a come è una console quando stampa fuori) a meno che l'utente non lo sostituisca scorrendo verso l'alto, quindi il testo dovrebbe rimanere inserito. Spero che aveva un senso, qui è un codice:
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"
}
}
}
Nota: Non credo che il mio flickable fa niente, è stata parte della mia sperimentazione per risolvere il problema. Inoltre, utilizzo la funzione addText
per stampare nell'area di testo. Non so quasi nulla di qml e la maggior parte di questo codice è stata scritta da qualcun altro e sto provando a lavorarci. Grazie!