簡體   English   中英

QML文本滾動

[英]QML text scroll

我正在使用C ++和QML來創建一個漂亮的界面。 我希望有一個“控制台視圖”,隨着時間的推移打印出足夠多的文本。 但是,當文本項或webview內容的文本增長時,視圖不會“向下滾動”。

如何使text / webview項目底部的文本始終保持可見?

我試過用flickable和the_webview.evaluateJavaScript + window.scrollTo玩,但是我無法讓他們做我想做的事。 這似乎是一個相當簡單的UI,但我在使用QML時遇到了嚴重的麻煩。

謝謝你的回答。

也許您應該考慮使用ListView並將消息作為視圖中的項目。 然后你可以使用ListView::positionViewAtEnd

是的我會使用包含Text對象的Flickable 每當您向Text添加Text ,請檢查其paintedHeight ,並調整FlickablecontentY如果它有更大的內容)。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM