2016-06-12 2 views
1

Flickable보기의 높이/너비를 드래그하는 동안 인쇄 할 수 있기를 원합니다. 유사한 이벤트 리스너 onTextChanged이 텍스트 컨트롤에서 텍스트 변경 내용을 듣는 작업을 수행하므로 onDraggingChanged 또는 onMovingChanged을 사용하여이 작업을 수행 할 수 있다고 생각합니다. 나는이 시도 :보기를 끌 때 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에서 모든 속성에는 '변경됨'신호가 있기 때문에 문서에는 해당 항목이 표시되지 않습니다. 자신의 속성을 만들 때도 마찬가지입니다. 당신은 [여기] (http://doc.qt.io/qt-5/qtqml-syntax-objectattributes.html)에 대해 읽을 수 있습니다. 그것이 QML이 작동하는 방식이며 이것이 값을 쉽게 바인딩 할 수있는 이유입니다. 속성이 변경 될 때마다 신호가 방출되고이 값을 기반으로하는 모든 값이 다시 계산됩니다. 따라서 문서에는 Flickable.contentXChanged가 없지만 Flickable.contentX가 있습니다. –

+0

감사합니다.이 정보는 QML을 더 잘 이해하는 데 도움이되었습니다. –