6

私は C++ と QML を使って素敵なインターフェースを作成しています。時間の経過とともに多くのテキストが印刷される「コンソールビュー」が欲しいです。ただし、テキスト アイテムまたは Web ビュー コンテンツのテキストが大きくなると、ビューは「スクロール ダウン」しません。

text/webview アイテムの下部にあるテキストを常に表示したままにするにはどうすればよいですか?

flickable と the_webview.evaluateJavaScript + window.scrollTo で遊んでみましたが、やりたいことができませんでした。これはかなり単純な UI のように見えますが、QML でこれを行うには深刻な問題があります。

ご回答ありがとうございます。

4

4 に答える 4

6

ええFlickable、オブジェクトを含むを使用しTextます。にテキストを追加するときはいつでもText、その をチェックし、それが大きくなった場合paintedHeightは を調整しFlickableます。contentY

于 2011-03-22T18:56:08.997 に答える
5

の使用を検討しListView、メッセージをビュー内のアイテムとして持つ必要があるかもしれません。次に、を使用できますListView::positionViewAtEnd

于 2011-03-22T18:35:20.243 に答える
3

funkybro の回答が私の最終的な解決策に影響を与えました。

function scroll_to_bottom() {
    flickabe_item.contentY = 
        Math.max(0, webview_item.height - flickabe_item.height);
    return;
}

ありがとう !

于 2011-03-22T19:16:43.000 に答える
1

これに対する私の解決策は、コンテンツと 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 }
}
于 2015-07-06T23:30:04.190 に答える