QML 文本滚动

rod*_*gob 5 c++ qt webview qml

我正在使用 C++ 和 QML 创建一个漂亮的界面。我想要一个“控制台视图”,随着时间的推移打印大量文本。但是,当文本项或 webview 内容的文本增长时,视图不会“向下滚动”。

如何使 text/webview 项目底部的文本始终可见?

我曾尝试玩 flickable 和 the_webview.evaluateJavaScript + window.scrollTo ,但我无法让他们做我想做的事。这似乎是一个相当简单的 UI,但我在使用 QML 时遇到了严重的麻烦。

谢谢你的回答。

Ilk*_*kka 5

也许您应该考虑使用 aListView并将消息作为视图中的项目。然后你可以使用ListView::positionViewAtEnd.


fun*_*bro 5

是的,我会使用一个Flickable包含Text对象的对象。每当你添加文本Text,检查它paintedHeight,并调整FlickablecontentY,如果它有任何更大。


rod*_*gob 3

funkybro 的回答启发了我的最终解决方案:

function scroll_to_bottom() {
    flickabe_item.contentY = 
        Math.max(0, webview_item.height - flickabe_item.height);
    return;
}
Run Code Online (Sandbox Code Playgroud)

谢谢 !