[英]QML text scroll
我正在使用C ++和QML來創建一個漂亮的界面。 我希望有一個“控制台視圖”,隨着時間的推移打印出足夠多的文本。 但是,當文本項或webview內容的文本增長時,視圖不會“向下滾動”。
如何使text / webview項目底部的文本始終保持可見?
我試過用flickable和the_webview.evaluateJavaScript + window.scrollTo玩,但是我無法讓他們做我想做的事。 這似乎是一個相當簡單的UI,但我在使用QML時遇到了嚴重的麻煩。
謝謝你的回答。
也許您應該考慮使用ListView
並將消息作為視圖中的項目。 然后你可以使用ListView::positionViewAtEnd
。
是的我會使用包含Text
對象的Flickable
。 每當您向Text
添加Text
,請檢查其paintedHeight
,並調整Flickable
的contentY
如果它有更大的內容)。
funkybro的答案啟發了我的最終解決方案:
function scroll_to_bottom() {
flickabe_item.contentY =
Math.max(0, webview_item.height - flickabe_item.height);
return;
}
謝謝 !
我的解決方案是垂直翻轉內容和Flickable。 這樣,文本以正確的方式結束,並自然地錨定在可滑動區域的底部。
由於OpenGL在幕后處理變換,因此它可能更有效。
Flickable {
id: flick
anchors.fill: parent
contentHeight: text.height
Text {
id: text
width: parent.width
transform: Scale { yScale: -1; origin.y: text.height/2 }
}
transform: Scale { yScale: -1; origin.y: flick.height/2 }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.