2016-06-12 10 views
1

Flickableビューの高さ/幅をドラッグして印刷できるようにしたい。私はそれがonDraggingChangedまたはonMovingChangedを使用して行うことができると信じています。類似のイベントリスナーonTextChangedは、テキストコントロールのリスニングテキストの変更を行うためです。 私はこの試みた:QMLフリック可能な印刷高さ/幅をドラッグして表示中

Flickable{ 
    id: flick 
    height: parent.height - 40 
    width: parent.width - 40 
    anchors.bottom: parent.bottom 
    anchors.right: parent.right 
    anchors.margins: 20 
    flickableDirection: Flickable.HorizontalAndVerticalFlick 
    Rectangle{ 
     anchors.fill: parent 
     color: "steelblue" 
    } 
    onMovingChanged: { 
     console.log("onMovingChanged") 
     console.log("height:", height) 
    } 
    onDraggingChanged: { 
     console.log("onDraggingChanged") 
     console.log("height:", height) 
    } 
} 

をしかし、これらのイベントリスナーはflickableを移動/ドラッグの開始と終了に高さを表示します。だから私はこれをどのように達成するのですか?

+0

あなたの高さはあなたの例では決して変わらないと知っていますよね?さらに、onContentXChanged/onContentYChangedに何かをフィリップスのように印刷すると、GUIが遅くなる可能性があります。 – Yoann

+0

@Yoannアニメーションやレイアウトのサイズを変更したいので、各地の高さを知る必要がありました。私はそれを使用することの欠点について非常に認識しています:) –

答えて

1

私はFlickable.contentXChangedFlickable.contentYChanged信号が必要と考えています。

  • Flickable.draggingChangedは、ドラッグが開始および終了しているときにのみ放出されます。
  • Flickable.movingChangedは、Flickableが起動して移動を終了した場合にのみ送出されます。
  • Flickable.contentXChangedは、コンテンツが水平方向に移動されるたびに出力されます。
  • Flickable.contentYChangedは、コンテンツが垂直方向に移動されるたびに出力されます。

また、Text.textChangedは、テキストが変更されるたびに出力されます。

+0

遅れて申し訳ありません、私はこのリンクを見て:http://doc.qt.io/qt-5/qml-qtquick-flickable.html#flickEnded-私はこれらの4つの信号を見つけることができません。あなたは私を医者にリンクしていただけますか? –

+1

@AkashAggarwal QMLではすべてのプロパティに 'changed'シグナルがあるため、ドキュメントには表示されません。独自のプロパティを作成する場合でも。あなたはそれについて読むことができます[ここ](http://doc.qt.io/qt-5/qtqml-syntax-objectattributes.html)。それがQMLの仕組みです。これが、値を簡単にバインドできる理由です。プロパティが変化するたびに信号が放出され、この値に基づくすべての値が再計算されます。したがって、ドキュメントにはFlickable.contentXChangedはありませんが、Flickable.contentXがあります。 –

+0

ありがとう、この情報はQMLをよく知るのに役立ちました。 –

関連する問題