2016-11-19 15 views
0

Subj 항목의 위임 된 텍스트, 레이블 및 spinboxvalue 요소를 사용하여 QML 'Listview에 내 데이터를 표시합니다. 사용자가 스핀 상자의 값을 변경할 때 나는 그것을 알아야하고 거래를해야합니다. 그러나 MouseArea는 회전 된 버튼이 아닌 Spinbox 이상에서 작동하며 onClicked 이벤트는 존재하지 않습니다.QML에서 변경 값의 Spinbox 이벤트를 잡는 방법은 무엇입니까?

SpinBox { 
        id: goodsCountSpinBox 
        leftPadding: 1 
        rightPadding: 1 
        value: model.goodsCount 
        implicitWidth: 100 
        anchors.right: dataRow.right 
        MouseArea { 
         anchors.fill: parent 
         onClicked: { 
          listView.currentIndex = index; //Change the current selected item to the clicked item 
          console.log("SpinBox::MouseArea::onClicked") 
         } 
        } 

덧붙여서 콘솔 로그에는 현재의 datetime을 출력하는 방법이 있습니까?

예에서 onValueChanged가 발견되었지만 QML 매뉴얼에서 찾지 못했습니다.

SpinBox { 
      id: fontSizeSpinBox 
      activeFocusOnPress: false 
      implicitWidth: 50 
      value: 0 
      property bool valueGuard: true 
      onValueChanged: if (valueGuard) document.fontSize = value 
     } 

나는 그냥 spinbox의 현재 값을 사용하려면 단지 바인딩 년 value 속성을 사용하여, 현재 타임 스탬프를

Qt.formatTime(new Date() 
+1

onValueChanged는 [속성 변경 신호 처리기]입니다 (http://doc.qt.io/qt-5/qtqml-syntax-signals.html#property-change-signal-handlers). 덕분에 – mcchu

+0

. 모든 클래스 객체에 대한 공통 정보입니다. 이제 알겠습니다 에 변경됨 은 속성의 이름입니다 –

답변

0

를 인쇄 할 수 발견했다.

값 변경에 대응하려면 속성 변경 신호 (예 : onValueChanged)에 대한 처리기를 사용하십시오.