私はアプリケーションからの出力として機能するいくつかのqmlを持っています(読み取り専用コンソールのようなもの)。しかし、情報を印刷するときに、上にスクロールするため、使用するのは面倒です。QML要素のスクロール位置を覚えている
たとえば、1分ごとに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についてほとんど知りません。このコードのほとんどは他の誰かによって書かれており、私はそれを使って作業しようとしています。ありがとうございました!