我正在使用C++和QML創建一個不錯的界面。 我想有一個「控制檯視圖」,其中大量的文本是通過時間打印的。 但是,當文本項目或webview內容的文本增長時,視圖不會「向下滾動」。QML文本滾動
如何使文本/ webview項目底部的文本始終保持可見狀態?
我嘗試玩滑動和the_webview.evaluateJavaScript + window.scrollTo,但我無法讓他們做我想做的事。 這似乎是一個相當簡單的用戶界面,但我遇到嚴重的麻煩與QML做到這一點。
謝謝你的回答。
我正在使用C++和QML創建一個不錯的界面。 我想有一個「控制檯視圖」,其中大量的文本是通過時間打印的。 但是,當文本項目或webview內容的文本增長時,視圖不會「向下滾動」。QML文本滾動
如何使文本/ webview項目底部的文本始終保持可見狀態?
我嘗試玩滑動和the_webview.evaluateJavaScript + window.scrollTo,但我無法讓他們做我想做的事。 這似乎是一個相當簡單的用戶界面,但我遇到嚴重的麻煩與QML做到這一點。
謝謝你的回答。
funkybro答案激發了我最終的解決方案:
function scroll_to_bottom() {
flickabe_item.contentY =
Math.max(0, webview_item.height - flickabe_item.height);
return;
}
謝謝!
也許您應該考慮使用ListView
並將消息作爲視圖中的項目。然後你可以使用ListView::positionViewAtEnd
。
是的,我會使用Flickable
包含Text
對象。每當您將文字添加到Text
時,請檢查它的paintedHeight
,如果它有更大的尺寸,則調整Flickable
的contentY
。
我的解決方案是垂直翻轉內容和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 }
}
這激發了我的最終解決方案: – rodrigob 2011-03-22 19:14:50